]> git.r.bdr.sh - rbdr/api-notation-atom/blob - grammars/api-notation.cson
8a2b4de24253aaea8eeb11fc5ee13b6893d005c6
[rbdr/api-notation-atom] / grammars / api-notation.cson
1 'scopeName': 'source.api-notation'
2 'name': 'API Notation'
3 'fileTypes': [
4 'api'
5 ]
6 'patterns': [
7 {
8 'begin': '^([a-zA-Z0-9_.]+)'
9 'end': '\n'
10 'name': 'constant.language'
11 'patterns': [
12 {
13 'include': '#dataTypes'
14 }
15 {
16 'include': '#comment'
17 }
18 ]
19 }
20 {
21 'begin': '[ \t]*',
22 'end': '\n'
23 'patterns': [
24 {
25 'include': '#apiMember'
26 }
27 {
28 'include': '#parameterList'
29 }
30 {
31 'include': '#dataTypes'
32 }
33 {
34 'include': '#operators'
35 }
36 {
37 'include': '#parameters'
38 }
39 {
40 'include': '#comment'
41 }
42 ]
43 }
44 {
45 'begin': '^.',
46 'end': '\n'
47 'patterns': [
48 {
49 'include': '#comment'
50 }
51 ]
52 },
53 ]
54 'repository':
55 'dataTypes': {
56 'begin': '\\<'
57 'end': '\\>'
58 'name': 'keyword.operator'
59 'patterns': [
60 {
61 'include': '#dataType'
62 }
63 {
64 'include': '#separators'
65 }
66 ]
67 }
68 'parameterList': {
69 'begin': '\\('
70 'end': '\\)'
71 'name': 'keyword.operator'
72 'patterns': [
73 {
74 'include': '#parameters'
75 }
76 {
77 'include': '#optionalParameters'
78 }
79 {
80 'include': '#dataTypes'
81 }
82 {
83 'include': '#separators'
84 }
85 ]
86 }
87 'dataType': {
88 'match': '[a-zA-Z0-9_.]+'
89 'name': 'support.function'
90 }
91 'parameters': {
92 'match': '[a-zA-Z0-9_.]+'
93 'name': 'string.other'
94 }
95 'optionalParameters': {
96 'begin': '\\['
97 'end': '\\]'
98 'patterns': [
99 {
100 'include': '#optionalParameter'
101 }
102 ]
103 }
104 'optionalParameter': {
105 'match': '[a-zA-Z0-9_.]+'
106 'name': 'meta.separator'
107 }
108 'separators': {
109 'match': '\\||,'
110 'name': 'comment.line'
111 }
112 'apiMember': {
113 'match': '((?:<\\+)|(?:<\\~)|(?:<\\-)|(?:\\+>)|(?:\\~>)|(?:\\->)|\\-|\\+|(?:::)|#)([a-zA-z0-9_]+)'
114 'captures':
115 '1':
116 'name': 'keyword.control'
117 '2':
118 'name': 'variable.language'
119 }
120 'comment': {
121 'match': '[ \t]*//[ \t]*.*',
122 'name': 'comment.line'
123 }
124 'operators': {
125 'match': '(?:\\->)|(?:\\=>)'
126 'name': 'keyword.control'
127 }