]> git.r.bdr.sh - rbdr/api-notation.vim/blob - syntax/api-notation.vim
Add throw matcher
[rbdr/api-notation.vim] / syntax / api-notation.vim
1 " Vim syntax file
2 " Language: API Notation
3 " Maintainer: Rubén Beltrán del Río
4 " Latest Revision: 22 June 2015
5
6 if exists("b:current_syntax")
7 finish
8 endif
9
10 syn match moduleName '^[a-zA-Z0-9_.]\+\s*' nextgroup=dataType
11
12 syn match comment '\s*//\s*.*'
13
14 syn match classMembers '^\s\+\(\(<+\)\|\(<\~\)\|\(<-\)\|\(+>\)\|\(\~>\)\|\(->\)\|-\|+\|\(::\)\|#\)' nextgroup=memberName skipwhite
15 syn match internalOperators '\(\(<+\)\|\(<\~\)\|\(<-\)\|\(+>\)\|\(\~>\)\|\(->\)\|-\|+\|\(::\)\|#\)' contained nextgroup=memberName skipwhite
16 syn match returnIdentifiers '\(=>\)' nextgroup=returnValue
17 syn match throwIdentifiers '\(#>\)' nextgroup=throwValue
18
19 syn match memberName '\w\+' contained nextgroup=internalOperators,spacedDataType
20
21 syn region parameterList start="(" end=")" transparent contains=parameters,separators,optionalParameter,dataType
22 syn region optionalParameter start="\[" end="]" contains=optionalParameters contained
23 syn region dataType start="<" end=">" contains=dataTypes,separators contained
24 syn region spacedDataType start='\s\+<' end=">" contains=dataTypes,separators contained
25
26 syn match optionalParameters '\w\+' contained
27 syn match parameters '\w\+' contained
28 syn match dataTypes '\w\+' contained
29 syn match separators '|\|,' contained
30
31 syn match returnValue '.*' contained contains=dataType,parameters
32 syn match throwValue '.*' contained contains=dataType,parameters
33
34 " Nest JSON
35 syn include @JSON syntax/json.vim
36 syn region jsonBlock start='```' end='```' contains=@JSON,comment,dataType
37
38 hi def link moduleName Identifier
39
40 hi def link classMembers Operator
41 hi def link returnIdentifiers Operator
42 hi def link throwIdentifiers Operator
43 hi def link internalOperators Operator
44
45 hi def link memberName Special
46
47 hi def link parameters PreProc
48 hi def link optionalParameters Underlined
49 hi def link dataTypes Constant
50
51 hi def link separators Comment
52 hi def link comment Comment
53 hi def link jsonBlock Comment