]> git.r.bdr.sh - rbdr/api-notation-atom/commitdiff
Adds the API notation grammar
authorBen Beltran <redacted>
Sat, 5 Sep 2015 19:03:32 +0000 (14:03 -0500)
committerBen Beltran <redacted>
Sat, 5 Sep 2015 19:03:32 +0000 (14:03 -0500)
grammars/api-notation.cson [new file with mode: 0644]

diff --git a/grammars/api-notation.cson b/grammars/api-notation.cson
new file mode 100644 (file)
index 0000000..8a2b4de
--- /dev/null
@@ -0,0 +1,127 @@
+'scopeName': 'source.api-notation'
+'name': 'API Notation'
+'fileTypes': [
+  'api'
+]
+'patterns': [
+  {
+    'begin': '^([a-zA-Z0-9_.]+)'
+    'end': '\n'
+    'name': 'constant.language'
+    'patterns': [
+      {
+        'include': '#dataTypes'
+      }
+      {
+        'include': '#comment'
+      }
+    ]
+  }
+  {
+    'begin': '[ \t]*',
+    'end': '\n'
+    'patterns': [
+      {
+        'include': '#apiMember'
+      }
+      {
+        'include': '#parameterList'
+      }
+      {
+        'include': '#dataTypes'
+      }
+      {
+        'include': '#operators'
+      }
+      {
+        'include': '#parameters'
+      }
+      {
+        'include': '#comment'
+      }
+    ]
+  }
+  {
+    'begin': '^.',
+    'end': '\n'
+    'patterns': [
+      {
+        'include': '#comment'
+      }
+    ]
+  },
+]
+'repository':
+  'dataTypes': {
+    'begin': '\\<'
+    'end': '\\>'
+    'name': 'keyword.operator'
+    'patterns': [
+      {
+        'include': '#dataType'
+      }
+      {
+        'include': '#separators'
+      }
+    ]
+  }
+  'parameterList': {
+    'begin': '\\('
+    'end': '\\)'
+    'name': 'keyword.operator'
+    'patterns': [
+      {
+        'include': '#parameters'
+      }
+      {
+        'include': '#optionalParameters'
+      }
+      {
+        'include': '#dataTypes'
+      }
+      {
+        'include': '#separators'
+      }
+    ]
+  }
+  'dataType': {
+    'match': '[a-zA-Z0-9_.]+'
+    'name': 'support.function'
+  }
+  'parameters': {
+    'match': '[a-zA-Z0-9_.]+'
+    'name': 'string.other'
+  }
+  'optionalParameters': {
+    'begin': '\\['
+    'end': '\\]'
+    'patterns': [
+      {
+        'include': '#optionalParameter'
+      }
+    ]
+  }
+  'optionalParameter': {
+    'match': '[a-zA-Z0-9_.]+'
+    'name': 'meta.separator'
+  }
+  'separators': {
+    'match': '\\||,'
+    'name': 'comment.line'
+  }
+  'apiMember': {
+    'match': '((?:<\\+)|(?:<\\~)|(?:<\\-)|(?:\\+>)|(?:\\~>)|(?:\\->)|\\-|\\+|(?:::)|#)([a-zA-z0-9_]+)'
+    'captures':
+      '1':
+        'name': 'keyword.control'
+      '2':
+        'name': 'variable.language'
+  }
+  'comment': {
+    'match': '[ \t]*//[ \t]*.*',
+    'name': 'comment.line'
+  }
+  'operators': {
+    'match': '(?:\\->)|(?:\\=>)'
+    'name': 'keyword.control'
+  }