ver 2009.10.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. data/CHANGELOG +1404 -0
  2. data/MANIFEST +187 -0
  3. data/Rakefile +30 -0
  4. data/TODO +169 -0
  5. data/bin/ver +19 -0
  6. data/config/detect.rb +109 -0
  7. data/config/keymap/vim.rb +239 -0
  8. data/config/rc.rb +0 -0
  9. data/config/scratch +3 -0
  10. data/config/syntax/ANTLR.json +275 -0
  11. data/config/syntax/ASP VB.net.json +228 -0
  12. data/config/syntax/ASP.json +135 -0
  13. data/config/syntax/ActionScript.json +168 -0
  14. data/config/syntax/Ada.json +108 -0
  15. data/config/syntax/Apache.json +342 -0
  16. data/config/syntax/AppleScript.json +721 -0
  17. data/config/syntax/Bibtex.json +253 -0
  18. data/config/syntax/Blog (HTML).json +47 -0
  19. data/config/syntax/Blog (Markdown).json +50 -0
  20. data/config/syntax/Blog (Text).json +45 -0
  21. data/config/syntax/Blog (Textile).json +45 -0
  22. data/config/syntax/Bulletin Board.json +428 -0
  23. data/config/syntax/C++.json +323 -0
  24. data/config/syntax/C.json +694 -0
  25. data/config/syntax/CSS.json +346 -0
  26. data/config/syntax/DOT.json +79 -0
  27. data/config/syntax/Diff.json +136 -0
  28. data/config/syntax/Dylan.json +104 -0
  29. data/config/syntax/Eiffel.json +128 -0
  30. data/config/syntax/Erlang.json +1636 -0
  31. data/config/syntax/F-Script.json +137 -0
  32. data/config/syntax/FXScript.json +260 -0
  33. data/config/syntax/Gri.json +141 -0
  34. data/config/syntax/HTML (Mason).json +207 -0
  35. data/config/syntax/HTML (Rails).json +52 -0
  36. data/config/syntax/HTML (Tcl).json +42 -0
  37. data/config/syntax/HTML for ASP.net.json +736 -0
  38. data/config/syntax/HTML-ASP.json +45 -0
  39. data/config/syntax/HTML.json +614 -0
  40. data/config/syntax/Haskell.json +407 -0
  41. data/config/syntax/Inform.json +80 -0
  42. data/config/syntax/Ini.json +91 -0
  43. data/config/syntax/Io.json +142 -0
  44. data/config/syntax/Java.json +745 -0
  45. data/config/syntax/JavaProperties.json +42 -0
  46. data/config/syntax/JavaScript.json +446 -0
  47. data/config/syntax/LaTeX Beamer.json +65 -0
  48. data/config/syntax/LaTeX Log.json +88 -0
  49. data/config/syntax/LaTeX.json +962 -0
  50. data/config/syntax/Lighttpd.json +93 -0
  51. data/config/syntax/Lisp.json +101 -0
  52. data/config/syntax/Literate Haskell.json +55 -0
  53. data/config/syntax/Logtalk.json +289 -0
  54. data/config/syntax/Lua.json +146 -0
  55. data/config/syntax/M.json +744 -0
  56. data/config/syntax/MEL.json +161 -0
  57. data/config/syntax/MIPS.json +114 -0
  58. data/config/syntax/Mail.json +224 -0
  59. data/config/syntax/Makefile.json +66 -0
  60. data/config/syntax/Markdown.json +644 -0
  61. data/config/syntax/Modula-3.json +80 -0
  62. data/config/syntax/Movable Type.json +348 -0
  63. data/config/syntax/OCaml.json +1391 -0
  64. data/config/syntax/Objective-C++.json +21 -0
  65. data/config/syntax/OpenGL.json +24 -0
  66. data/config/syntax/PHP.json +2184 -0
  67. data/config/syntax/Pascal.json +128 -0
  68. data/config/syntax/Perl.json +2091 -0
  69. data/config/syntax/Plain text.json +49 -0
  70. data/config/syntax/Processing.json +188 -0
  71. data/config/syntax/Quake3 Config.json +54 -0
  72. data/config/syntax/R.json +157 -0
  73. data/config/syntax/Rez.json +137 -0
  74. data/config/syntax/Ruby on Rails.json +170 -0
  75. data/config/syntax/Ruby.json +1753 -0
  76. data/config/syntax/SQL (Rails).json +31 -0
  77. data/config/syntax/SQL.json +435 -0
  78. data/config/syntax/SWIG.json +96 -0
  79. data/config/syntax/Scheme.json +359 -0
  80. data/config/syntax/Shell-Unix-Generic.json +1198 -0
  81. data/config/syntax/Slate.json +265 -0
  82. data/config/syntax/Smarty.json +110 -0
  83. data/config/syntax/Standard ML.json +322 -0
  84. data/config/syntax/Subversion commit message.json +62 -0
  85. data/config/syntax/Tcl.json +278 -0
  86. data/config/syntax/TeX Math.json +83 -0
  87. data/config/syntax/TeX.json +157 -0
  88. data/config/syntax/Textile.json +273 -0
  89. data/config/syntax/Twiki.json +436 -0
  90. data/config/syntax/Vectorscript.json +97 -0
  91. data/config/syntax/XML strict.json +148 -0
  92. data/config/syntax/XML.json +301 -0
  93. data/config/syntax/XSL.json +96 -0
  94. data/config/syntax/YAML.json +293 -0
  95. data/config/syntax/iCalendar.json +51 -0
  96. data/config/syntax/reStructuredText.json +403 -0
  97. data/config/theme/Active4D.json +260 -0
  98. data/config/theme/All Hallow's Eve.json +171 -0
  99. data/config/theme/Amy.json +359 -0
  100. data/config/theme/BBEdit.json +269 -0
  101. data/config/theme/Bespin.json +322 -0
  102. data/config/theme/Blackboard.json +215 -0
  103. data/config/theme/BoysAndGirls01.json +156 -0
  104. data/config/theme/Brilliance Black.json +1695 -0
  105. data/config/theme/Brilliance Dull.json +1451 -0
  106. data/config/theme/Classic Modified.json +288 -0
  107. data/config/theme/Cobalt.json +345 -0
  108. data/config/theme/Cool Glow.json +215 -0
  109. data/config/theme/Dawn.json +258 -0
  110. data/config/theme/Eiffel.json +270 -0
  111. data/config/theme/Espresso Libre.json +247 -0
  112. data/config/theme/Fluidvision.json +272 -0
  113. data/config/theme/IDLE.json +159 -0
  114. data/config/theme/LAZY.json +178 -0
  115. data/config/theme/Mac Classic.json +277 -0
  116. data/config/theme/MagicWB (Amiga).json +231 -0
  117. data/config/theme/Merbivore Soft.json +181 -0
  118. data/config/theme/Merbivore.json +181 -0
  119. data/config/theme/Monokai.json +177 -0
  120. data/config/theme/Notepad2.json +166 -0
  121. data/config/theme/Pastels on Dark.json +437 -0
  122. data/config/theme/RubyBlue.json +226 -0
  123. data/config/theme/Sin City 2.json +361 -0
  124. data/config/theme/Slate.json +270 -0
  125. data/config/theme/Slush & Poppies.json +232 -0
  126. data/config/theme/SpaceCadet.json +143 -0
  127. data/config/theme/Sunburst.json +415 -0
  128. data/config/theme/Twilight BG FG.json +633 -0
  129. data/config/theme/Twilight.json +321 -0
  130. data/config/theme/Whys Poignant.json +119 -0
  131. data/config/theme/Zenburnesque.json +237 -0
  132. data/config/theme/barf.json +155 -0
  133. data/config/theme/fake.json +418 -0
  134. data/config/theme/happydeluxe.json +114 -0
  135. data/config/theme/iLife 05.json +393 -0
  136. data/config/theme/iPlastic.json +177 -0
  137. data/config/theme/mintBlue Dark.json +414 -0
  138. data/config/theme/mintBlue.json +415 -0
  139. data/config/theme/monoindustrial.json +276 -0
  140. data/config/theme/starlight.json +67 -0
  141. data/config/tutorial +74 -0
  142. data/config/welcome +115 -0
  143. data/help/index.verh +14 -0
  144. data/lib/ver.rb +156 -0
  145. data/lib/ver/entry.rb +97 -0
  146. data/lib/ver/keymap.rb +96 -0
  147. data/lib/ver/layout.rb +107 -0
  148. data/lib/ver/methods.rb +19 -0
  149. data/lib/ver/methods/completion.rb +116 -0
  150. data/lib/ver/methods/control.rb +340 -0
  151. data/lib/ver/methods/insert.rb +6 -0
  152. data/lib/ver/methods/move.rb +65 -0
  153. data/lib/ver/methods/search.rb +33 -0
  154. data/lib/ver/methods/select.rb +145 -0
  155. data/lib/ver/methods/views.rb +21 -0
  156. data/lib/ver/mode.rb +160 -0
  157. data/lib/ver/options.rb +207 -0
  158. data/lib/ver/plist.rb +106 -0
  159. data/lib/ver/status.rb +67 -0
  160. data/lib/ver/syntax.rb +68 -0
  161. data/lib/ver/syntax/detector.rb +53 -0
  162. data/lib/ver/syntax/processor.rb +48 -0
  163. data/lib/ver/text.rb +374 -0
  164. data/lib/ver/textpow.rb +357 -0
  165. data/lib/ver/theme.rb +162 -0
  166. data/lib/ver/vendor/fuzzy_file_finder.rb +340 -0
  167. data/lib/ver/view.rb +163 -0
  168. data/lib/ver/view/entry.rb +28 -0
  169. data/lib/ver/view/list.rb +137 -0
  170. data/lib/ver/view/list/buffer.rb +27 -0
  171. data/lib/ver/view/list/fuzzy_file_finder.rb +44 -0
  172. data/lib/ver/view/list/syntax.rb +13 -0
  173. data/lib/ver/view/list/theme.rb +13 -0
  174. data/spec/keymap.rb +224 -0
  175. data/tasks/bacon.rake +49 -0
  176. data/tasks/changelog.rake +18 -0
  177. data/tasks/gem.rake +22 -0
  178. data/tasks/gem_installer.rake +76 -0
  179. data/tasks/grancher.rake +12 -0
  180. data/tasks/install_dependencies.rake +6 -0
  181. data/tasks/manifest.rake +4 -0
  182. data/tasks/plist2json.rake +35 -0
  183. data/tasks/rcov.rake +18 -0
  184. data/tasks/release.rake +12 -0
  185. data/tasks/reversion.rake +8 -0
  186. data/tasks/syntax_list.rake +31 -0
  187. data/ver.gemspec +29 -0
  188. metadata +241 -0
@@ -0,0 +1,104 @@
1
+ {
2
+ "fileTypes": [
3
+ "dylan"
4
+ ],
5
+ "foldingStartMarker": "\\b(define|begin|block)\\b",
6
+ "foldingStopMarker": "\\bend\\b",
7
+ "keyEquivalent": "^~D",
8
+ "name": "Dylan",
9
+ "patterns": [
10
+ {
11
+ "begin": "\/\\*",
12
+ "captures": {
13
+ "0": {
14
+ "name": "punctuation.definition.comment.dylan"
15
+ }
16
+ },
17
+ "comment": "TODO -- Dylan allows nested comments.",
18
+ "end": "\\*\/",
19
+ "name": "comment.block.dylan"
20
+ },
21
+ {
22
+ "begin": "\/\/",
23
+ "beginCaptures": {
24
+ "0": {
25
+ "name": "punctuation.definition.comment.dylan"
26
+ }
27
+ },
28
+ "end": "$\\n?",
29
+ "name": "comment.line.double-slash.dylan",
30
+ "patterns": [
31
+ {
32
+ "match": "(?>\\\\\\s*\\n)",
33
+ "name": "punctuation.separator.continuation.dylan"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "begin": "\\b(define\\s+)((?:sealed|inline)\\s)?(method|function)\\s+([A-Za-z0-9\\\\-]*[!?]?)\\s",
39
+ "captures": {
40
+ "1": {
41
+ "name": "keyword.control.def.dylan"
42
+ },
43
+ "2": {
44
+ "name": "storage.modifier.dylan"
45
+ },
46
+ "3": {
47
+ "name": "storage.type.function.dylan"
48
+ },
49
+ "4": {
50
+ "name": "entity.name.function.dylan"
51
+ }
52
+ },
53
+ "end": "\\)",
54
+ "name": "meta.function.dylan"
55
+ },
56
+ {
57
+ "match": "\\b(?<!-)(begin|block|case|class|constant|define|domain|else|end|for|function|handler|if|inline|let|library|local|macro|method|module|otherwise|select|unless|until|variable|when|while)(?![:-])\\b",
58
+ "name": "keyword.control.dylan"
59
+ },
60
+ {
61
+ "match": "(#t|#f|#next|#rest|#key|#all-keys|#include)",
62
+ "name": "support.constant.language.dylan"
63
+ },
64
+ {
65
+ "match": "\\b(sealed|open|abstract|concrete|primary|free)\\b",
66
+ "name": "keyword.control.sealing-directives.dylan"
67
+ },
68
+ {
69
+ "match": "\\b((#x[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",
70
+ "name": "constant.numeric.dylan"
71
+ },
72
+ {
73
+ "begin": "\"",
74
+ "beginCaptures": {
75
+ "0": {
76
+ "name": "punctuation.definition.string.begin.dylan"
77
+ }
78
+ },
79
+ "end": "\"",
80
+ "endCaptures": {
81
+ "0": {
82
+ "name": "punctuation.definition.string.end.dylan"
83
+ }
84
+ },
85
+ "name": "string.quoted.double.dylan",
86
+ "patterns": [
87
+ {
88
+ "match": "\\\\.",
89
+ "name": "constant.character.escape.dylan"
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "match": "<(abort|array|boolean|byte-string|character|class|collection|complex|condition|deque|double-float|empty-list|error|explicit-key-collection|extended-float|float|function|generic-function|integer|list|method|mutable-collection|mutable-explicit-key-collection|mutable-sequence|number|object-table|object|pair|range|rational|real|restart|sealed-object-error|sequence|serious-condition|simple-error|simple-object-vector|simple-restart|simple-vector|simple-warning|single-float|singleton|stretchy-collection|stretchy-vector|string|symbol|table|type-error|type|unicode-string|vector|warning)>",
95
+ "name": "support.class.dylan"
96
+ },
97
+ {
98
+ "match": "\\b(?<!-)(abort|abs|add|add!|add-method|add-new|add-new!|all-superclasses|always|any?|applicable-method?|apply|aref|aref-setter|as|as-lowercase|as-lowercase!|as-uppercase|as-uppercase!|ash|backward-iteration-protocol|break|ceiling|ceiling\/|cerror|check-type|choose|choose-by|complement|compose|concatenate|concatenate-as|condition-format-arguments|condition-format-string|conjoin|copy-sequence|curry|default-handler|dimension|dimensions|direct-subclasses|direct-superclasses|disjoin|do|do-handlers|element|element-setter|empty?|error|even?|every?|fill!|find-key|find-method|first|first-setter|floor|floor\/|forward-iteration-protocol|function-arguments|function-return-values|function-specializers|gcd|generic-function-mandatory-|keywords|generic-function-methods|head|head-setter|identity|initialize|instance?|integral?|intersection|key-sequence|key-test|last|last-setter|lcm|limited|list|logand|logbit?|logior|lognot|logxor|make|map|map-as|map-into|max|member?|merge-hash-codes|min|modulo|negative|negative?|object-class|object-hash|odd?|pair|pop|pop-last|positive?|push|push-last|range|rank|rcurry|reduce|reduce1|remainder|remove|remove!|remove-duplicates|remove-duplicates!|remove-key!|remove-method|replace-elements!|replace-subsequence!|restart-query|return-allowed?|return-description|return-query|reverse|reverse!|round|round\/|row-major-index|second|second-setter|shallow-copy|signal|singleton|size|size-setter|slot-initialized?|sort|sort!|sorted-applicable-methods|subsequence-position|subtype?|table-protocol|tail|tail-setter|third|third-setter|truncate|truncate\/|type-error-expected-type|type-error-value|type-for-copy|type-union|union|values|vector|zero?)(?![:-])\\b",
99
+ "name": "support.function.dylan"
100
+ }
101
+ ],
102
+ "scopeName": "source.dylan",
103
+ "uuid": "475B8369-3520-4B4C-BBA1-1D1229C6F397"
104
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "fileTypes": [
3
+ "e"
4
+ ],
5
+ "foldingStartMarker": "(class|once|do|external)",
6
+ "foldingStopMarker": "(ensure|end)",
7
+ "keyEquivalent": "^~E",
8
+ "name": "Eiffel",
9
+ "patterns": [
10
+ {
11
+ "captures": {
12
+ "1": {
13
+ "name": "punctuation.definition.comment.eiffel"
14
+ }
15
+ },
16
+ "match": "(--).*$\\n?",
17
+ "name": "comment.line.double-dash.eiffel"
18
+ },
19
+ {
20
+ "match": "\\b(Indexing|indexing|deferred|expanded|class|inherit|rename|as|export|undefine|redefine|select|all|create|creation|feature|prefix|infix|separate|frozen|obsolete|local|is|unique|do|once|external|alias|require|ensure|invariant|variant|rescue|retry|like|check|if|else|elseif|then|inspect|when|from|loop|until|debug|not|or|and|xor|implies|old|end)\\b",
21
+ "name": "keyword.control.eiffel"
22
+ },
23
+ {
24
+ "match": "[a-zA-Z_]+",
25
+ "name": "variable.other.eiffel"
26
+ },
27
+ {
28
+ "match": "\\b(True|true|False|false|Void|void|Result|result)\\b",
29
+ "name": "constant.language.eiffel"
30
+ },
31
+ {
32
+ "begin": "feature",
33
+ "end": "end",
34
+ "name": "meta.features.eiffel"
35
+ },
36
+ {
37
+ "begin": "(do|once)",
38
+ "end": "(ensure|end)",
39
+ "name": "meta.effective_routine_body.eiffel"
40
+ },
41
+ {
42
+ "begin": "rescue",
43
+ "end": "end",
44
+ "name": "meta.rescue.eiffel"
45
+ },
46
+ {
47
+ "begin": "\"",
48
+ "beginCaptures": {
49
+ "0": {
50
+ "name": "punctuation.definition.string.begin.eiffel"
51
+ }
52
+ },
53
+ "end": "\"",
54
+ "endCaptures": {
55
+ "0": {
56
+ "name": "punctuation.definition.string.end.eiffel"
57
+ }
58
+ },
59
+ "name": "string.quoted.double.eiffel",
60
+ "patterns": [
61
+ {
62
+ "match": "\\\\.",
63
+ "name": "constant.character.escape.eiffel"
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "match": "[0-9]+",
69
+ "name": "constant.numeric.eiffel"
70
+ },
71
+ {
72
+ "match": "\\b(deferred|expanded)\\b",
73
+ "name": "storage.modifier.eiffel"
74
+ },
75
+ {
76
+ "begin": "^\\s*\n\t\t\t\t\t((?:\\b(deferred|expanded)\\b\\s*)*) # modifier\n\t\t\t\t\t(class)\\s+\n\t\t\t\t\t(\\w+)\\s* # identifier",
77
+ "captures": {
78
+ "1": {
79
+ "name": "storage.modifier.eiffel"
80
+ }
81
+ },
82
+ "end": "(?=end)",
83
+ "name": "meta.definition.class.eiffel",
84
+ "patterns": [
85
+ {
86
+ "begin": "\\b(extends)\\b\\s+",
87
+ "captures": {
88
+ "1": {
89
+ "name": "storage.modifier.java"
90
+ }
91
+ },
92
+ "end": "(?={|implements)",
93
+ "name": "meta.definition.class.extends.java",
94
+ "patterns": [
95
+ {
96
+ "include": "#all-types"
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "begin": "\\b(implements)\\b\\s+",
102
+ "captures": {
103
+ "1": {
104
+ "name": "storage.modifier.java"
105
+ }
106
+ },
107
+ "end": "(?={|extends)",
108
+ "name": "meta.definition.class.implements.java",
109
+ "patterns": [
110
+ {
111
+ "include": "#all-types"
112
+ }
113
+ ]
114
+ }
115
+ ]
116
+ }
117
+ ],
118
+ "repository": {
119
+ "number": {
120
+ "match": "[0-9]+"
121
+ },
122
+ "variable": {
123
+ "match": "[a-zA-Z0-9_]+"
124
+ }
125
+ },
126
+ "scopeName": "source.eiffel",
127
+ "uuid": "34672373-DED9-45B8-AF7E-2E4B6C3D6B76"
128
+ }
@@ -0,0 +1,1636 @@
1
+ {
2
+ "comment": "The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function\/module\/record\/macro names must be given unquoted. -- desp",
3
+ "fileTypes": [
4
+ "erl",
5
+ "hrl"
6
+ ],
7
+ "keyEquivalent": "^~E",
8
+ "name": "Erlang",
9
+ "patterns": [
10
+ {
11
+ "include": "#module-directive"
12
+ },
13
+ {
14
+ "include": "#import-export-directive"
15
+ },
16
+ {
17
+ "include": "#record-directive"
18
+ },
19
+ {
20
+ "include": "#define-directive"
21
+ },
22
+ {
23
+ "include": "#macro-directive"
24
+ },
25
+ {
26
+ "include": "#directive"
27
+ },
28
+ {
29
+ "include": "#function"
30
+ },
31
+ {
32
+ "include": "#everything-else"
33
+ }
34
+ ],
35
+ "repository": {
36
+ "atom": {
37
+ "patterns": [
38
+ {
39
+ "begin": "(')",
40
+ "beginCaptures": {
41
+ "1": {
42
+ "name": "punctuation.definition.symbol.begin.erlang"
43
+ }
44
+ },
45
+ "end": "(')",
46
+ "endCaptures": {
47
+ "1": {
48
+ "name": "punctuation.definition.symbol.end.erlang"
49
+ }
50
+ },
51
+ "name": "constant.other.symbol.quoted.single.erlang",
52
+ "patterns": [
53
+ {
54
+ "captures": {
55
+ "1": {
56
+ "name": "punctuation.definition.escape.erlang"
57
+ },
58
+ "3": {
59
+ "name": "punctuation.definition.escape.erlang"
60
+ }
61
+ },
62
+ "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3})",
63
+ "name": "constant.other.symbol.escape.erlang"
64
+ },
65
+ {
66
+ "match": "\\\\\\^?.?",
67
+ "name": "invalid.illegal.atom.erlang"
68
+ }
69
+ ]
70
+ },
71
+ {
72
+ "match": "[a-z][a-zA-Z\\d@_]*+",
73
+ "name": "constant.other.symbol.unquoted.erlang"
74
+ }
75
+ ]
76
+ },
77
+ "binary": {
78
+ "begin": "(<<)",
79
+ "beginCaptures": {
80
+ "1": {
81
+ "name": "punctuation.definition.binary.begin.erlang"
82
+ }
83
+ },
84
+ "end": "(>>)",
85
+ "endCaptures": {
86
+ "1": {
87
+ "name": "punctuation.definition.binary.end.erlang"
88
+ }
89
+ },
90
+ "name": "meta.structure.binary.erlang",
91
+ "patterns": [
92
+ {
93
+ "captures": {
94
+ "1": {
95
+ "name": "punctuation.separator.binary.erlang"
96
+ },
97
+ "2": {
98
+ "name": "punctuation.separator.value-size.erlang"
99
+ }
100
+ },
101
+ "match": "(,)|(:)"
102
+ },
103
+ {
104
+ "include": "#internal-type-specifiers"
105
+ },
106
+ {
107
+ "include": "#everything-else"
108
+ }
109
+ ]
110
+ },
111
+ "character": {
112
+ "patterns": [
113
+ {
114
+ "captures": {
115
+ "1": {
116
+ "name": "punctuation.definition.character.erlang"
117
+ },
118
+ "2": {
119
+ "name": "constant.character.escape.erlang"
120
+ },
121
+ "3": {
122
+ "name": "punctuation.definition.escape.erlang"
123
+ },
124
+ "5": {
125
+ "name": "punctuation.definition.escape.erlang"
126
+ }
127
+ },
128
+ "match": "(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3}))",
129
+ "name": "constant.character.erlang"
130
+ },
131
+ {
132
+ "match": "\\$\\\\\\^?.?",
133
+ "name": "invalid.illegal.character.erlang"
134
+ },
135
+ {
136
+ "captures": {
137
+ "1": {
138
+ "name": "punctuation.definition.character.erlang"
139
+ }
140
+ },
141
+ "match": "(\\$)\\S",
142
+ "name": "constant.character.erlang"
143
+ },
144
+ {
145
+ "match": "\\$.?",
146
+ "name": "invalid.illegal.character.erlang"
147
+ }
148
+ ]
149
+ },
150
+ "comment": {
151
+ "begin": "(%)",
152
+ "beginCaptures": {
153
+ "1": {
154
+ "name": "punctuation.definition.comment.erlang"
155
+ }
156
+ },
157
+ "end": "$\\n?",
158
+ "name": "comment.line.erlang"
159
+ },
160
+ "define-directive": {
161
+ "patterns": [
162
+ {
163
+ "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(,)",
164
+ "beginCaptures": {
165
+ "1": {
166
+ "name": "punctuation.section.directive.begin.erlang"
167
+ },
168
+ "2": {
169
+ "name": "keyword.control.directive.define.erlang"
170
+ },
171
+ "3": {
172
+ "name": "punctuation.definition.parameters.begin.erlang"
173
+ },
174
+ "4": {
175
+ "name": "entity.name.function.macro.definition.erlang"
176
+ },
177
+ "5": {
178
+ "name": "punctuation.separator.parameters.erlang"
179
+ }
180
+ },
181
+ "end": "(\\))\\s*+(\\.)",
182
+ "endCaptures": {
183
+ "1": {
184
+ "name": "punctuation.definition.parameters.end.erlang"
185
+ },
186
+ "2": {
187
+ "name": "punctuation.section.directive.end.erlang"
188
+ }
189
+ },
190
+ "name": "meta.directive.define.erlang",
191
+ "patterns": [
192
+ {
193
+ "include": "#everything-else"
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "begin": "(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",
199
+ "end": "(\\))\\s*+(\\.)",
200
+ "endCaptures": {
201
+ "1": {
202
+ "name": "punctuation.definition.parameters.end.erlang"
203
+ },
204
+ "2": {
205
+ "name": "punctuation.section.directive.end.erlang"
206
+ }
207
+ },
208
+ "name": "meta.directive.define.erlang",
209
+ "patterns": [
210
+ {
211
+ "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",
212
+ "beginCaptures": {
213
+ "1": {
214
+ "name": "punctuation.section.directive.begin.erlang"
215
+ },
216
+ "2": {
217
+ "name": "keyword.control.directive.define.erlang"
218
+ },
219
+ "3": {
220
+ "name": "punctuation.definition.parameters.begin.erlang"
221
+ },
222
+ "4": {
223
+ "name": "entity.name.function.macro.definition.erlang"
224
+ },
225
+ "5": {
226
+ "name": "punctuation.definition.parameters.begin.erlang"
227
+ }
228
+ },
229
+ "end": "(\\))\\s*(,)",
230
+ "endCaptures": {
231
+ "1": {
232
+ "name": "punctuation.definition.parameters.end.erlang"
233
+ },
234
+ "2": {
235
+ "name": "punctuation.separator.parameters.erlang"
236
+ }
237
+ },
238
+ "patterns": [
239
+ {
240
+ "match": ",",
241
+ "name": "punctuation.separator.parameters.erlang"
242
+ },
243
+ {
244
+ "include": "#everything-else"
245
+ }
246
+ ]
247
+ },
248
+ {
249
+ "match": "\\|\\||\\||:|;|,|\\.|->",
250
+ "name": "punctuation.separator.define.erlang"
251
+ },
252
+ {
253
+ "include": "#everything-else"
254
+ }
255
+ ]
256
+ }
257
+ ]
258
+ },
259
+ "directive": {
260
+ "patterns": [
261
+ {
262
+ "begin": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\()",
263
+ "beginCaptures": {
264
+ "1": {
265
+ "name": "punctuation.section.directive.begin.erlang"
266
+ },
267
+ "2": {
268
+ "name": "keyword.control.directive.erlang"
269
+ },
270
+ "3": {
271
+ "name": "punctuation.definition.parameters.begin.erlang"
272
+ }
273
+ },
274
+ "end": "(\\))\\s*+(\\.)",
275
+ "endCaptures": {
276
+ "1": {
277
+ "name": "punctuation.definition.parameters.end.erlang"
278
+ },
279
+ "2": {
280
+ "name": "punctuation.section.directive.end.erlang"
281
+ }
282
+ },
283
+ "name": "meta.directive.erlang",
284
+ "patterns": [
285
+ {
286
+ "include": "#everything-else"
287
+ }
288
+ ]
289
+ },
290
+ {
291
+ "captures": {
292
+ "1": {
293
+ "name": "punctuation.section.directive.begin.erlang"
294
+ },
295
+ "2": {
296
+ "name": "keyword.control.directive.erlang"
297
+ },
298
+ "3": {
299
+ "name": "punctuation.section.directive.end.erlang"
300
+ }
301
+ },
302
+ "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",
303
+ "name": "meta.directive.erlang"
304
+ }
305
+ ]
306
+ },
307
+ "everything-else": {
308
+ "patterns": [
309
+ {
310
+ "include": "#comment"
311
+ },
312
+ {
313
+ "include": "#record-usage"
314
+ },
315
+ {
316
+ "include": "#macro-usage"
317
+ },
318
+ {
319
+ "include": "#expression"
320
+ },
321
+ {
322
+ "include": "#keyword"
323
+ },
324
+ {
325
+ "include": "#textual-operator"
326
+ },
327
+ {
328
+ "include": "#function-call"
329
+ },
330
+ {
331
+ "include": "#tuple"
332
+ },
333
+ {
334
+ "include": "#list"
335
+ },
336
+ {
337
+ "include": "#binary"
338
+ },
339
+ {
340
+ "include": "#parenthesized-expression"
341
+ },
342
+ {
343
+ "include": "#character"
344
+ },
345
+ {
346
+ "include": "#number"
347
+ },
348
+ {
349
+ "include": "#atom"
350
+ },
351
+ {
352
+ "include": "#string"
353
+ },
354
+ {
355
+ "include": "#symbolic-operator"
356
+ },
357
+ {
358
+ "include": "#variable"
359
+ }
360
+ ]
361
+ },
362
+ "expression": {
363
+ "patterns": [
364
+ {
365
+ "begin": "\\b(if)\\b",
366
+ "beginCaptures": {
367
+ "1": {
368
+ "name": "keyword.control.if.erlang"
369
+ }
370
+ },
371
+ "end": "\\b(end)\\b",
372
+ "endCaptures": {
373
+ "1": {
374
+ "name": "keyword.control.end.erlang"
375
+ }
376
+ },
377
+ "name": "meta.expression.if.erlang",
378
+ "patterns": [
379
+ {
380
+ "include": "#internal-expression-punctuation"
381
+ },
382
+ {
383
+ "include": "#everything-else"
384
+ }
385
+ ]
386
+ },
387
+ {
388
+ "begin": "\\b(case)\\b",
389
+ "beginCaptures": {
390
+ "1": {
391
+ "name": "keyword.control.case.erlang"
392
+ }
393
+ },
394
+ "end": "\\b(end)\\b",
395
+ "endCaptures": {
396
+ "1": {
397
+ "name": "keyword.control.end.erlang"
398
+ }
399
+ },
400
+ "name": "meta.expression.case.erlang",
401
+ "patterns": [
402
+ {
403
+ "include": "#internal-expression-punctuation"
404
+ },
405
+ {
406
+ "include": "#everything-else"
407
+ }
408
+ ]
409
+ },
410
+ {
411
+ "begin": "\\b(receive)\\b",
412
+ "beginCaptures": {
413
+ "1": {
414
+ "name": "keyword.control.receive.erlang"
415
+ }
416
+ },
417
+ "end": "\\b(end)\\b",
418
+ "endCaptures": {
419
+ "1": {
420
+ "name": "keyword.control.end.erlang"
421
+ }
422
+ },
423
+ "name": "meta.expression.receive.erlang",
424
+ "patterns": [
425
+ {
426
+ "include": "#internal-expression-punctuation"
427
+ },
428
+ {
429
+ "include": "#everything-else"
430
+ }
431
+ ]
432
+ },
433
+ {
434
+ "captures": {
435
+ "1": {
436
+ "name": "keyword.control.fun.erlang"
437
+ },
438
+ "3": {
439
+ "name": "entity.name.type.class.module.erlang"
440
+ },
441
+ "4": {
442
+ "name": "punctuation.separator.module-function.erlang"
443
+ },
444
+ "5": {
445
+ "name": "entity.name.function.erlang"
446
+ },
447
+ "6": {
448
+ "name": "punctuation.separator.function-arity.erlang"
449
+ }
450
+ },
451
+ "match": "\\b(fun)\\s*+(([a-z][a-zA-Z\\d@_]*+)\\s*+(:)\\s*+)?([a-z][a-zA-Z\\d@_]*+)\\s*(\/)"
452
+ },
453
+ {
454
+ "begin": "\\b(fun)\\b",
455
+ "beginCaptures": {
456
+ "1": {
457
+ "name": "keyword.control.fun.erlang"
458
+ }
459
+ },
460
+ "end": "\\b(end)\\b",
461
+ "endCaptures": {
462
+ "1": {
463
+ "name": "keyword.control.end.erlang"
464
+ }
465
+ },
466
+ "name": "meta.expression.fun.erlang",
467
+ "patterns": [
468
+ {
469
+ "begin": "(?=\\()",
470
+ "end": "(;)|(?=\\bend\\b)",
471
+ "endCaptures": {
472
+ "1": {
473
+ "name": "punctuation.separator.clauses.erlang"
474
+ }
475
+ },
476
+ "patterns": [
477
+ {
478
+ "include": "#internal-function-parts"
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ "include": "#everything-else"
484
+ }
485
+ ]
486
+ },
487
+ {
488
+ "begin": "\\b(try)\\b",
489
+ "beginCaptures": {
490
+ "1": {
491
+ "name": "keyword.control.try.erlang"
492
+ }
493
+ },
494
+ "end": "\\b(end)\\b",
495
+ "endCaptures": {
496
+ "1": {
497
+ "name": "keyword.control.end.erlang"
498
+ }
499
+ },
500
+ "name": "meta.expression.try.erlang",
501
+ "patterns": [
502
+ {
503
+ "include": "#internal-expression-punctuation"
504
+ },
505
+ {
506
+ "include": "#everything-else"
507
+ }
508
+ ]
509
+ },
510
+ {
511
+ "begin": "\\b(begin)\\b",
512
+ "beginCaptures": {
513
+ "1": {
514
+ "name": "keyword.control.begin.erlang"
515
+ }
516
+ },
517
+ "end": "\\b(end)\\b",
518
+ "endCaptures": {
519
+ "1": {
520
+ "name": "keyword.control.end.erlang"
521
+ }
522
+ },
523
+ "name": "meta.expression.begin.erlang",
524
+ "patterns": [
525
+ {
526
+ "include": "#internal-expression-punctuation"
527
+ },
528
+ {
529
+ "include": "#everything-else"
530
+ }
531
+ ]
532
+ },
533
+ {
534
+ "begin": "\\b(query)\\b",
535
+ "beginCaptures": {
536
+ "1": {
537
+ "name": "keyword.control.query.erlang"
538
+ }
539
+ },
540
+ "end": "\\b(end)\\b",
541
+ "endCaptures": {
542
+ "1": {
543
+ "name": "keyword.control.end.erlang"
544
+ }
545
+ },
546
+ "name": "meta.expression.query.erlang",
547
+ "patterns": [
548
+ {
549
+ "include": "#everything-else"
550
+ }
551
+ ]
552
+ }
553
+ ]
554
+ },
555
+ "function": {
556
+ "begin": "^\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(?=\\()",
557
+ "beginCaptures": {
558
+ "1": {
559
+ "name": "entity.name.function.definition.erlang"
560
+ }
561
+ },
562
+ "end": "(\\.)",
563
+ "endCaptures": {
564
+ "1": {
565
+ "name": "punctuation.terminator.function.erlang"
566
+ }
567
+ },
568
+ "name": "meta.function.erlang",
569
+ "patterns": [
570
+ {
571
+ "captures": {
572
+ "1": {
573
+ "name": "entity.name.function.erlang"
574
+ }
575
+ },
576
+ "match": "^\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(?=\\()"
577
+ },
578
+ {
579
+ "begin": "(?=\\()",
580
+ "end": "(;)|(?=\\.)",
581
+ "endCaptures": {
582
+ "1": {
583
+ "name": "punctuation.separator.clauses.erlang"
584
+ }
585
+ },
586
+ "patterns": [
587
+ {
588
+ "include": "#parenthesized-expression"
589
+ },
590
+ {
591
+ "include": "#internal-function-parts"
592
+ }
593
+ ]
594
+ },
595
+ {
596
+ "include": "#everything-else"
597
+ }
598
+ ]
599
+ },
600
+ "function-call": {
601
+ "begin": "(?=[a-z][a-zA-Z\\d@_]*+\\s*+(\\(|:\\s*+[a-z][a-zA-Z\\d@_]*+\\s*+\\())",
602
+ "end": "(\\))",
603
+ "endCaptures": {
604
+ "1": {
605
+ "name": "punctuation.definition.parameters.end.erlang"
606
+ }
607
+ },
608
+ "name": "meta.function-call.erlang",
609
+ "patterns": [
610
+ {
611
+ "begin": "((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()",
612
+ "beginCaptures": {
613
+ "2": {
614
+ "name": "entity.name.type.class.module.erlang"
615
+ },
616
+ "3": {
617
+ "name": "punctuation.separator.module-function.erlang"
618
+ },
619
+ "4": {
620
+ "name": "entity.name.function.guard.erlang"
621
+ },
622
+ "5": {
623
+ "name": "punctuation.definition.parameters.begin.erlang"
624
+ }
625
+ },
626
+ "end": "(?=\\))",
627
+ "patterns": [
628
+ {
629
+ "match": ",",
630
+ "name": "punctuation.separator.parameters.erlang"
631
+ },
632
+ {
633
+ "include": "#everything-else"
634
+ }
635
+ ]
636
+ },
637
+ {
638
+ "begin": "(([a-z][a-zA-Z\\d@_]*+)\\s*+(:)\\s*+)?([a-z][a-zA-Z\\d@_]*+)\\s*+(\\()",
639
+ "beginCaptures": {
640
+ "2": {
641
+ "name": "entity.name.type.class.module.erlang"
642
+ },
643
+ "3": {
644
+ "name": "punctuation.separator.module-function.erlang"
645
+ },
646
+ "4": {
647
+ "name": "entity.name.function.erlang"
648
+ },
649
+ "5": {
650
+ "name": "punctuation.definition.parameters.begin.erlang"
651
+ }
652
+ },
653
+ "end": "(?=\\))",
654
+ "patterns": [
655
+ {
656
+ "match": ",",
657
+ "name": "punctuation.separator.parameters.erlang"
658
+ },
659
+ {
660
+ "include": "#everything-else"
661
+ }
662
+ ]
663
+ }
664
+ ]
665
+ },
666
+ "import-export-directive": {
667
+ "patterns": [
668
+ {
669
+ "begin": "^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(,)",
670
+ "beginCaptures": {
671
+ "1": {
672
+ "name": "punctuation.section.directive.begin.erlang"
673
+ },
674
+ "2": {
675
+ "name": "keyword.control.directive.import.erlang"
676
+ },
677
+ "3": {
678
+ "name": "punctuation.definition.parameters.begin.erlang"
679
+ },
680
+ "4": {
681
+ "name": "entity.name.type.class.module.erlang"
682
+ },
683
+ "5": {
684
+ "name": "punctuation.separator.parameters.erlang"
685
+ }
686
+ },
687
+ "end": "(\\))\\s*+(\\.)",
688
+ "endCaptures": {
689
+ "1": {
690
+ "name": "punctuation.definition.parameters.end.erlang"
691
+ },
692
+ "2": {
693
+ "name": "punctuation.section.directive.end.erlang"
694
+ }
695
+ },
696
+ "name": "meta.directive.import.erlang",
697
+ "patterns": [
698
+ {
699
+ "include": "#internal-function-list"
700
+ }
701
+ ]
702
+ },
703
+ {
704
+ "begin": "^\\s*+(-)\\s*+(export)\\s*+(\\()",
705
+ "beginCaptures": {
706
+ "1": {
707
+ "name": "punctuation.section.directive.begin.erlang"
708
+ },
709
+ "2": {
710
+ "name": "keyword.control.directive.export.erlang"
711
+ },
712
+ "3": {
713
+ "name": "punctuation.definition.parameters.begin.erlang"
714
+ }
715
+ },
716
+ "end": "(\\))\\s*+(\\.)",
717
+ "endCaptures": {
718
+ "1": {
719
+ "name": "punctuation.definition.parameters.end.erlang"
720
+ },
721
+ "2": {
722
+ "name": "punctuation.section.directive.end.erlang"
723
+ }
724
+ },
725
+ "name": "meta.directive.export.erlang",
726
+ "patterns": [
727
+ {
728
+ "include": "#internal-function-list"
729
+ }
730
+ ]
731
+ }
732
+ ]
733
+ },
734
+ "internal-expression-punctuation": {
735
+ "captures": {
736
+ "1": {
737
+ "name": "punctuation.separator.clause-head-body.erlang"
738
+ },
739
+ "2": {
740
+ "name": "punctuation.separator.clauses.erlang"
741
+ },
742
+ "3": {
743
+ "name": "punctuation.separator.expressions.erlang"
744
+ }
745
+ },
746
+ "match": "(->)|(;)|(,)"
747
+ },
748
+ "internal-function-list": {
749
+ "begin": "(\\[)",
750
+ "beginCaptures": {
751
+ "1": {
752
+ "name": "punctuation.definition.list.begin.erlang"
753
+ }
754
+ },
755
+ "end": "(\\])",
756
+ "endCaptures": {
757
+ "1": {
758
+ "name": "punctuation.definition.list.end.erlang"
759
+ }
760
+ },
761
+ "name": "meta.structure.list.function.erlang",
762
+ "patterns": [
763
+ {
764
+ "begin": "([a-z][a-zA-Z\\d@_]*+)\\s*+(\/)",
765
+ "beginCaptures": {
766
+ "1": {
767
+ "name": "entity.name.function.erlang"
768
+ },
769
+ "2": {
770
+ "name": "punctuation.separator.function-arity.erlang"
771
+ }
772
+ },
773
+ "end": "(,)|(?=\\])",
774
+ "endCaptures": {
775
+ "1": {
776
+ "name": "punctuation.separator.list.erlang"
777
+ }
778
+ },
779
+ "patterns": [
780
+ {
781
+ "include": "#everything-else"
782
+ }
783
+ ]
784
+ },
785
+ {
786
+ "include": "#everything-else"
787
+ }
788
+ ]
789
+ },
790
+ "internal-function-parts": {
791
+ "patterns": [
792
+ {
793
+ "begin": "(?=\\()",
794
+ "end": "(->)",
795
+ "endCaptures": {
796
+ "1": {
797
+ "name": "punctuation.separator.clause-head-body.erlang"
798
+ }
799
+ },
800
+ "patterns": [
801
+ {
802
+ "begin": "(\\()",
803
+ "beginCaptures": {
804
+ "1": {
805
+ "name": "punctuation.definition.parameters.begin.erlang"
806
+ }
807
+ },
808
+ "end": "(\\))",
809
+ "endCaptures": {
810
+ "1": {
811
+ "name": "punctuation.definition.parameters.end.erlang"
812
+ }
813
+ },
814
+ "patterns": [
815
+ {
816
+ "match": ",",
817
+ "name": "punctuation.separator.parameters.erlang"
818
+ },
819
+ {
820
+ "include": "#everything-else"
821
+ }
822
+ ]
823
+ },
824
+ {
825
+ "match": ",|;",
826
+ "name": "punctuation.separator.guards.erlang"
827
+ },
828
+ {
829
+ "include": "#everything-else"
830
+ }
831
+ ]
832
+ },
833
+ {
834
+ "match": ",",
835
+ "name": "punctuation.separator.expressions.erlang"
836
+ },
837
+ {
838
+ "include": "#everything-else"
839
+ }
840
+ ]
841
+ },
842
+ "internal-record-body": {
843
+ "begin": "(\\{)",
844
+ "beginCaptures": {
845
+ "1": {
846
+ "name": "punctuation.definition.class.record.begin.erlang"
847
+ }
848
+ },
849
+ "end": "(?=\\})",
850
+ "name": "meta.structure.record.erlang",
851
+ "patterns": [
852
+ {
853
+ "begin": "(([a-z][a-zA-Z\\d@_]*+)|(_))\\s*+(=)",
854
+ "beginCaptures": {
855
+ "2": {
856
+ "name": "variable.other.field.erlang"
857
+ },
858
+ "3": {
859
+ "name": "variable.language.omitted.field.erlang"
860
+ },
861
+ "4": {
862
+ "name": "keyword.operator.assignment.erlang"
863
+ }
864
+ },
865
+ "end": "(,)|(?=\\})",
866
+ "endCaptures": {
867
+ "1": {
868
+ "name": "punctuation.separator.class.record.erlang"
869
+ }
870
+ },
871
+ "patterns": [
872
+ {
873
+ "include": "#everything-else"
874
+ }
875
+ ]
876
+ },
877
+ {
878
+ "captures": {
879
+ "1": {
880
+ "name": "variable.other.field.erlang"
881
+ },
882
+ "2": {
883
+ "name": "punctuation.separator.class.record.erlang"
884
+ }
885
+ },
886
+ "match": "([a-z][a-zA-Z\\d@_]*+)\\s*+(,)?"
887
+ },
888
+ {
889
+ "include": "#everything-else"
890
+ }
891
+ ]
892
+ },
893
+ "internal-type-specifiers": {
894
+ "begin": "(\/)",
895
+ "beginCaptures": {
896
+ "1": {
897
+ "name": "punctuation.separator.value-type.erlang"
898
+ }
899
+ },
900
+ "end": "(?=,|:|>>)",
901
+ "patterns": [
902
+ {
903
+ "captures": {
904
+ "1": {
905
+ "name": "storage.type.erlang"
906
+ },
907
+ "2": {
908
+ "name": "storage.modifier.signedness.erlang"
909
+ },
910
+ "3": {
911
+ "name": "storage.modifier.endianness.erlang"
912
+ },
913
+ "4": {
914
+ "name": "storage.modifier.unit.erlang"
915
+ },
916
+ "5": {
917
+ "name": "punctuation.separator.type-specifiers.erlang"
918
+ }
919
+ },
920
+ "match": "(integer|float|binary)|(signed|unsigned)|(big|little|native)|(unit)|(-)"
921
+ }
922
+ ]
923
+ },
924
+ "keyword": {
925
+ "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\b",
926
+ "name": "keyword.control.erlang"
927
+ },
928
+ "list": {
929
+ "begin": "(\\[)",
930
+ "beginCaptures": {
931
+ "1": {
932
+ "name": "punctuation.definition.list.begin.erlang"
933
+ }
934
+ },
935
+ "end": "(\\])",
936
+ "endCaptures": {
937
+ "1": {
938
+ "name": "punctuation.definition.list.end.erlang"
939
+ }
940
+ },
941
+ "name": "meta.structure.list.erlang",
942
+ "patterns": [
943
+ {
944
+ "match": "\\||\\|\\||,",
945
+ "name": "punctuation.separator.list.erlang"
946
+ },
947
+ {
948
+ "include": "#everything-else"
949
+ }
950
+ ]
951
+ },
952
+ "macro-directive": {
953
+ "patterns": [
954
+ {
955
+ "captures": {
956
+ "1": {
957
+ "name": "punctuation.section.directive.begin.erlang"
958
+ },
959
+ "2": {
960
+ "name": "keyword.control.directive.ifdef.erlang"
961
+ },
962
+ "3": {
963
+ "name": "punctuation.definition.parameters.begin.erlang"
964
+ },
965
+ "4": {
966
+ "name": "entity.name.function.macro.erlang"
967
+ },
968
+ "5": {
969
+ "name": "punctuation.definition.parameters.end.erlang"
970
+ },
971
+ "6": {
972
+ "name": "punctuation.section.directive.end.erlang"
973
+ }
974
+ },
975
+ "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
976
+ "name": "meta.directive.ifdef.erlang"
977
+ },
978
+ {
979
+ "captures": {
980
+ "1": {
981
+ "name": "punctuation.section.directive.begin.erlang"
982
+ },
983
+ "2": {
984
+ "name": "keyword.control.directive.ifndef.erlang"
985
+ },
986
+ "3": {
987
+ "name": "punctuation.definition.parameters.begin.erlang"
988
+ },
989
+ "4": {
990
+ "name": "entity.name.function.macro.erlang"
991
+ },
992
+ "5": {
993
+ "name": "punctuation.definition.parameters.end.erlang"
994
+ },
995
+ "6": {
996
+ "name": "punctuation.section.directive.end.erlang"
997
+ }
998
+ },
999
+ "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1000
+ "name": "meta.directive.ifndef.erlang"
1001
+ },
1002
+ {
1003
+ "captures": {
1004
+ "1": {
1005
+ "name": "punctuation.section.directive.begin.erlang"
1006
+ },
1007
+ "2": {
1008
+ "name": "keyword.control.directive.undef.erlang"
1009
+ },
1010
+ "3": {
1011
+ "name": "punctuation.definition.parameters.begin.erlang"
1012
+ },
1013
+ "4": {
1014
+ "name": "entity.name.function.macro.erlang"
1015
+ },
1016
+ "5": {
1017
+ "name": "punctuation.definition.parameters.end.erlang"
1018
+ },
1019
+ "6": {
1020
+ "name": "punctuation.section.directive.end.erlang"
1021
+ }
1022
+ },
1023
+ "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1024
+ "name": "meta.directive.undef.erlang"
1025
+ }
1026
+ ]
1027
+ },
1028
+ "macro-usage": {
1029
+ "captures": {
1030
+ "1": {
1031
+ "name": "keyword.operator.macro.erlang"
1032
+ },
1033
+ "2": {
1034
+ "name": "entity.name.function.macro.erlang"
1035
+ }
1036
+ },
1037
+ "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",
1038
+ "name": "meta.macro-usage.erlang"
1039
+ },
1040
+ "module-directive": {
1041
+ "captures": {
1042
+ "1": {
1043
+ "name": "punctuation.section.directive.begin.erlang"
1044
+ },
1045
+ "2": {
1046
+ "name": "keyword.control.directive.module.erlang"
1047
+ },
1048
+ "3": {
1049
+ "name": "punctuation.definition.parameters.begin.erlang"
1050
+ },
1051
+ "4": {
1052
+ "name": "entity.name.type.class.module.definition.erlang"
1053
+ },
1054
+ "5": {
1055
+ "name": "punctuation.definition.parameters.end.erlang"
1056
+ },
1057
+ "6": {
1058
+ "name": "punctuation.section.directive.end.erlang"
1059
+ }
1060
+ },
1061
+ "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
1062
+ "name": "meta.directive.module.erlang"
1063
+ },
1064
+ "number": {
1065
+ "begin": "(?=\\d)",
1066
+ "end": "(?!\\d)",
1067
+ "patterns": [
1068
+ {
1069
+ "captures": {
1070
+ "1": {
1071
+ "name": "punctuation.separator.integer-float.erlang"
1072
+ },
1073
+ "3": {
1074
+ "name": "punctuation.separator.float-exponent.erlang"
1075
+ }
1076
+ },
1077
+ "match": "\\d++(\\.)\\d++(([eE][\\+\\-])?\\d++)?",
1078
+ "name": "constant.numeric.float.erlang"
1079
+ },
1080
+ {
1081
+ "captures": {
1082
+ "1": {
1083
+ "name": "punctuation.separator.base-integer.erlang"
1084
+ }
1085
+ },
1086
+ "match": "2(#)[0-1]++",
1087
+ "name": "constant.numeric.integer.binary.erlang"
1088
+ },
1089
+ {
1090
+ "captures": {
1091
+ "1": {
1092
+ "name": "punctuation.separator.base-integer.erlang"
1093
+ }
1094
+ },
1095
+ "match": "3(#)[0-2]++",
1096
+ "name": "constant.numeric.integer.base-3.erlang"
1097
+ },
1098
+ {
1099
+ "captures": {
1100
+ "1": {
1101
+ "name": "punctuation.separator.base-integer.erlang"
1102
+ }
1103
+ },
1104
+ "match": "4(#)[0-3]++",
1105
+ "name": "constant.numeric.integer.base-4.erlang"
1106
+ },
1107
+ {
1108
+ "captures": {
1109
+ "1": {
1110
+ "name": "punctuation.separator.base-integer.erlang"
1111
+ }
1112
+ },
1113
+ "match": "5(#)[0-4]++",
1114
+ "name": "constant.numeric.integer.base-5.erlang"
1115
+ },
1116
+ {
1117
+ "captures": {
1118
+ "1": {
1119
+ "name": "punctuation.separator.base-integer.erlang"
1120
+ }
1121
+ },
1122
+ "match": "6(#)[0-5]++",
1123
+ "name": "constant.numeric.integer.base-6.erlang"
1124
+ },
1125
+ {
1126
+ "captures": {
1127
+ "1": {
1128
+ "name": "punctuation.separator.base-integer.erlang"
1129
+ }
1130
+ },
1131
+ "match": "7(#)[0-6]++",
1132
+ "name": "constant.numeric.integer.base-7.erlang"
1133
+ },
1134
+ {
1135
+ "captures": {
1136
+ "1": {
1137
+ "name": "punctuation.separator.base-integer.erlang"
1138
+ }
1139
+ },
1140
+ "match": "8(#)[0-7]++",
1141
+ "name": "constant.numeric.integer.octal.erlang"
1142
+ },
1143
+ {
1144
+ "captures": {
1145
+ "1": {
1146
+ "name": "punctuation.separator.base-integer.erlang"
1147
+ }
1148
+ },
1149
+ "match": "9(#)[0-8]++",
1150
+ "name": "constant.numeric.integer.base-9.erlang"
1151
+ },
1152
+ {
1153
+ "captures": {
1154
+ "1": {
1155
+ "name": "punctuation.separator.base-integer.erlang"
1156
+ }
1157
+ },
1158
+ "match": "10(#)\\d++",
1159
+ "name": "constant.numeric.integer.decimal.erlang"
1160
+ },
1161
+ {
1162
+ "captures": {
1163
+ "1": {
1164
+ "name": "punctuation.separator.base-integer.erlang"
1165
+ }
1166
+ },
1167
+ "match": "11(#)[\\daA]++",
1168
+ "name": "constant.numeric.integer.base-11.erlang"
1169
+ },
1170
+ {
1171
+ "captures": {
1172
+ "1": {
1173
+ "name": "punctuation.separator.base-integer.erlang"
1174
+ }
1175
+ },
1176
+ "match": "12(#)[\\da-bA-B]++",
1177
+ "name": "constant.numeric.integer.base-12.erlang"
1178
+ },
1179
+ {
1180
+ "captures": {
1181
+ "1": {
1182
+ "name": "punctuation.separator.base-integer.erlang"
1183
+ }
1184
+ },
1185
+ "match": "13(#)[\\da-cA-C]++",
1186
+ "name": "constant.numeric.integer.base-13.erlang"
1187
+ },
1188
+ {
1189
+ "captures": {
1190
+ "1": {
1191
+ "name": "punctuation.separator.base-integer.erlang"
1192
+ }
1193
+ },
1194
+ "match": "14(#)[\\da-dA-D]++",
1195
+ "name": "constant.numeric.integer.base-14.erlang"
1196
+ },
1197
+ {
1198
+ "captures": {
1199
+ "1": {
1200
+ "name": "punctuation.separator.base-integer.erlang"
1201
+ }
1202
+ },
1203
+ "match": "15(#)[\\da-eA-E]++",
1204
+ "name": "constant.numeric.integer.base-15.erlang"
1205
+ },
1206
+ {
1207
+ "captures": {
1208
+ "1": {
1209
+ "name": "punctuation.separator.base-integer.erlang"
1210
+ }
1211
+ },
1212
+ "match": "16(#)\\h++",
1213
+ "name": "constant.numeric.integer.hexadecimal.erlang"
1214
+ },
1215
+ {
1216
+ "captures": {
1217
+ "1": {
1218
+ "name": "punctuation.separator.base-integer.erlang"
1219
+ }
1220
+ },
1221
+ "match": "17(#)[\\da-gA-G]++",
1222
+ "name": "constant.numeric.integer.base-17.erlang"
1223
+ },
1224
+ {
1225
+ "captures": {
1226
+ "1": {
1227
+ "name": "punctuation.separator.base-integer.erlang"
1228
+ }
1229
+ },
1230
+ "match": "18(#)[\\da-hA-H]++",
1231
+ "name": "constant.numeric.integer.base-18.erlang"
1232
+ },
1233
+ {
1234
+ "captures": {
1235
+ "1": {
1236
+ "name": "punctuation.separator.base-integer.erlang"
1237
+ }
1238
+ },
1239
+ "match": "19(#)[\\da-iA-I]++",
1240
+ "name": "constant.numeric.integer.base-19.erlang"
1241
+ },
1242
+ {
1243
+ "captures": {
1244
+ "1": {
1245
+ "name": "punctuation.separator.base-integer.erlang"
1246
+ }
1247
+ },
1248
+ "match": "20(#)[\\da-jA-J]++",
1249
+ "name": "constant.numeric.integer.base-20.erlang"
1250
+ },
1251
+ {
1252
+ "captures": {
1253
+ "1": {
1254
+ "name": "punctuation.separator.base-integer.erlang"
1255
+ }
1256
+ },
1257
+ "match": "21(#)[\\da-kA-K]++",
1258
+ "name": "constant.numeric.integer.base-21.erlang"
1259
+ },
1260
+ {
1261
+ "captures": {
1262
+ "1": {
1263
+ "name": "punctuation.separator.base-integer.erlang"
1264
+ }
1265
+ },
1266
+ "match": "22(#)[\\da-lA-L]++",
1267
+ "name": "constant.numeric.integer.base-22.erlang"
1268
+ },
1269
+ {
1270
+ "captures": {
1271
+ "1": {
1272
+ "name": "punctuation.separator.base-integer.erlang"
1273
+ }
1274
+ },
1275
+ "match": "23(#)[\\da-mA-M]++",
1276
+ "name": "constant.numeric.integer.base-23.erlang"
1277
+ },
1278
+ {
1279
+ "captures": {
1280
+ "1": {
1281
+ "name": "punctuation.separator.base-integer.erlang"
1282
+ }
1283
+ },
1284
+ "match": "24(#)[\\da-nA-N]++",
1285
+ "name": "constant.numeric.integer.base-24.erlang"
1286
+ },
1287
+ {
1288
+ "captures": {
1289
+ "1": {
1290
+ "name": "punctuation.separator.base-integer.erlang"
1291
+ }
1292
+ },
1293
+ "match": "25(#)[\\da-oA-O]++",
1294
+ "name": "constant.numeric.integer.base-25.erlang"
1295
+ },
1296
+ {
1297
+ "captures": {
1298
+ "1": {
1299
+ "name": "punctuation.separator.base-integer.erlang"
1300
+ }
1301
+ },
1302
+ "match": "26(#)[\\da-pA-P]++",
1303
+ "name": "constant.numeric.integer.base-26.erlang"
1304
+ },
1305
+ {
1306
+ "captures": {
1307
+ "1": {
1308
+ "name": "punctuation.separator.base-integer.erlang"
1309
+ }
1310
+ },
1311
+ "match": "27(#)[\\da-qA-Q]++",
1312
+ "name": "constant.numeric.integer.base-27.erlang"
1313
+ },
1314
+ {
1315
+ "captures": {
1316
+ "1": {
1317
+ "name": "punctuation.separator.base-integer.erlang"
1318
+ }
1319
+ },
1320
+ "match": "28(#)[\\da-rA-R]++",
1321
+ "name": "constant.numeric.integer.base-28.erlang"
1322
+ },
1323
+ {
1324
+ "captures": {
1325
+ "1": {
1326
+ "name": "punctuation.separator.base-integer.erlang"
1327
+ }
1328
+ },
1329
+ "match": "29(#)[\\da-sA-S]++",
1330
+ "name": "constant.numeric.integer.base-29.erlang"
1331
+ },
1332
+ {
1333
+ "captures": {
1334
+ "1": {
1335
+ "name": "punctuation.separator.base-integer.erlang"
1336
+ }
1337
+ },
1338
+ "match": "30(#)[\\da-tA-T]++",
1339
+ "name": "constant.numeric.integer.base-30.erlang"
1340
+ },
1341
+ {
1342
+ "captures": {
1343
+ "1": {
1344
+ "name": "punctuation.separator.base-integer.erlang"
1345
+ }
1346
+ },
1347
+ "match": "31(#)[\\da-uA-U]++",
1348
+ "name": "constant.numeric.integer.base-31.erlang"
1349
+ },
1350
+ {
1351
+ "captures": {
1352
+ "1": {
1353
+ "name": "punctuation.separator.base-integer.erlang"
1354
+ }
1355
+ },
1356
+ "match": "32(#)[\\da-vA-V]++",
1357
+ "name": "constant.numeric.integer.base-32.erlang"
1358
+ },
1359
+ {
1360
+ "captures": {
1361
+ "1": {
1362
+ "name": "punctuation.separator.base-integer.erlang"
1363
+ }
1364
+ },
1365
+ "match": "33(#)[\\da-wA-W]++",
1366
+ "name": "constant.numeric.integer.base-33.erlang"
1367
+ },
1368
+ {
1369
+ "captures": {
1370
+ "1": {
1371
+ "name": "punctuation.separator.base-integer.erlang"
1372
+ }
1373
+ },
1374
+ "match": "34(#)[\\da-xA-X]++",
1375
+ "name": "constant.numeric.integer.base-34.erlang"
1376
+ },
1377
+ {
1378
+ "captures": {
1379
+ "1": {
1380
+ "name": "punctuation.separator.base-integer.erlang"
1381
+ }
1382
+ },
1383
+ "match": "35(#)[\\da-yA-Y]++",
1384
+ "name": "constant.numeric.integer.base-35.erlang"
1385
+ },
1386
+ {
1387
+ "captures": {
1388
+ "1": {
1389
+ "name": "punctuation.separator.base-integer.erlang"
1390
+ }
1391
+ },
1392
+ "match": "36(#)[\\da-zA-Z]++",
1393
+ "name": "constant.numeric.integer.base-36.erlang"
1394
+ },
1395
+ {
1396
+ "match": "\\d++#[\\da-zA-Z]++",
1397
+ "name": "invalid.illegal.integer.erlang"
1398
+ },
1399
+ {
1400
+ "match": "\\d++",
1401
+ "name": "constant.numeric.integer.decimal.erlang"
1402
+ }
1403
+ ]
1404
+ },
1405
+ "parenthesized-expression": {
1406
+ "begin": "(\\()",
1407
+ "beginCaptures": {
1408
+ "1": {
1409
+ "name": "punctuation.section.expression.begin.erlang"
1410
+ }
1411
+ },
1412
+ "end": "(\\))",
1413
+ "endCaptures": {
1414
+ "1": {
1415
+ "name": "punctuation.section.expression.end.erlang"
1416
+ }
1417
+ },
1418
+ "name": "meta.expression.parenthesized",
1419
+ "patterns": [
1420
+ {
1421
+ "include": "#everything-else"
1422
+ }
1423
+ ]
1424
+ },
1425
+ "record-directive": {
1426
+ "begin": "^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(,)",
1427
+ "beginCaptures": {
1428
+ "1": {
1429
+ "name": "punctuation.section.directive.begin.erlang"
1430
+ },
1431
+ "2": {
1432
+ "name": "keyword.control.directive.import.erlang"
1433
+ },
1434
+ "3": {
1435
+ "name": "punctuation.definition.parameters.begin.erlang"
1436
+ },
1437
+ "4": {
1438
+ "name": "entity.name.type.class.record.definition.erlang"
1439
+ },
1440
+ "5": {
1441
+ "name": "punctuation.separator.parameters.erlang"
1442
+ }
1443
+ },
1444
+ "end": "((\\}))\\s*+(\\))\\s*+(\\.)",
1445
+ "endCaptures": {
1446
+ "1": {
1447
+ "name": "meta.structure.record.erlang"
1448
+ },
1449
+ "2": {
1450
+ "name": "punctuation.definition.class.record.end.erlang"
1451
+ },
1452
+ "3": {
1453
+ "name": "punctuation.definition.parameters.end.erlang"
1454
+ },
1455
+ "4": {
1456
+ "name": "punctuation.section.directive.end.erlang"
1457
+ }
1458
+ },
1459
+ "name": "meta.directive.record.erlang",
1460
+ "patterns": [
1461
+ {
1462
+ "include": "#internal-record-body"
1463
+ }
1464
+ ]
1465
+ },
1466
+ "record-usage": {
1467
+ "patterns": [
1468
+ {
1469
+ "captures": {
1470
+ "1": {
1471
+ "name": "keyword.operator.record.erlang"
1472
+ },
1473
+ "2": {
1474
+ "name": "entity.name.type.class.record.erlang"
1475
+ },
1476
+ "3": {
1477
+ "name": "punctuation.separator.record-field.erlang"
1478
+ },
1479
+ "4": {
1480
+ "name": "variable.other.field.erlang"
1481
+ }
1482
+ },
1483
+ "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+)",
1484
+ "name": "meta.record-usage.erlang"
1485
+ },
1486
+ {
1487
+ "begin": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+)",
1488
+ "beginCaptures": {
1489
+ "1": {
1490
+ "name": "keyword.operator.record.erlang"
1491
+ },
1492
+ "2": {
1493
+ "name": "entity.name.type.class.record.erlang"
1494
+ }
1495
+ },
1496
+ "end": "((\\}))",
1497
+ "endCaptures": {
1498
+ "1": {
1499
+ "name": "meta.structure.record.erlang"
1500
+ },
1501
+ "2": {
1502
+ "name": "punctuation.definition.class.record.end.erlang"
1503
+ }
1504
+ },
1505
+ "name": "meta.record-usage.erlang",
1506
+ "patterns": [
1507
+ {
1508
+ "include": "#internal-record-body"
1509
+ }
1510
+ ]
1511
+ }
1512
+ ]
1513
+ },
1514
+ "string": {
1515
+ "begin": "(\")",
1516
+ "beginCaptures": {
1517
+ "1": {
1518
+ "name": "punctuation.definition.string.begin.erlang"
1519
+ }
1520
+ },
1521
+ "end": "(\")",
1522
+ "endCaptures": {
1523
+ "1": {
1524
+ "name": "punctuation.definition.string.end.erlang"
1525
+ }
1526
+ },
1527
+ "name": "string.quoted.double.erlang",
1528
+ "patterns": [
1529
+ {
1530
+ "captures": {
1531
+ "1": {
1532
+ "name": "punctuation.definition.escape.erlang"
1533
+ },
1534
+ "3": {
1535
+ "name": "punctuation.definition.escape.erlang"
1536
+ }
1537
+ },
1538
+ "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3})",
1539
+ "name": "constant.character.escape.erlang"
1540
+ },
1541
+ {
1542
+ "match": "\\\\\\^?.?",
1543
+ "name": "invalid.illegal.string.erlang"
1544
+ },
1545
+ {
1546
+ "captures": {
1547
+ "1": {
1548
+ "name": "punctuation.definition.placeholder.erlang"
1549
+ },
1550
+ "10": {
1551
+ "name": "punctuation.separator.placeholder-parts.erlang"
1552
+ },
1553
+ "12": {
1554
+ "name": "punctuation.separator.placeholder-parts.erlang"
1555
+ },
1556
+ "3": {
1557
+ "name": "punctuation.separator.placeholder-parts.erlang"
1558
+ },
1559
+ "4": {
1560
+ "name": "punctuation.separator.placeholder-parts.erlang"
1561
+ },
1562
+ "6": {
1563
+ "name": "punctuation.separator.placeholder-parts.erlang"
1564
+ },
1565
+ "8": {
1566
+ "name": "punctuation.separator.placeholder-parts.erlang"
1567
+ }
1568
+ },
1569
+ "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*)))?((\\.)((\\*)|.))?[~cfegswpWPBX#bx\\+ni]",
1570
+ "name": "constant.other.placeholder.erlang"
1571
+ },
1572
+ {
1573
+ "captures": {
1574
+ "1": {
1575
+ "name": "punctuation.definition.placeholder.erlang"
1576
+ },
1577
+ "2": {
1578
+ "name": "punctuation.separator.placeholder-parts.erlang"
1579
+ }
1580
+ },
1581
+ "match": "(~)(\\*)?(\\d++)?[~du\\-#fsacl]",
1582
+ "name": "constant.other.placeholder.erlang"
1583
+ },
1584
+ {
1585
+ "match": "~.?",
1586
+ "name": "invalid.illegal.string.erlang"
1587
+ }
1588
+ ]
1589
+ },
1590
+ "symbolic-operator": {
1591
+ "match": "\\+\\+|\\+|--|-|\\*|\/=|\/|=\/=|=:=|==|=<|=|<-|<|>=|>|!",
1592
+ "name": "keyword.operator.symbolic.erlang"
1593
+ },
1594
+ "textual-operator": {
1595
+ "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",
1596
+ "name": "keyword.operator.textual.erlang"
1597
+ },
1598
+ "tuple": {
1599
+ "begin": "(\\{)",
1600
+ "beginCaptures": {
1601
+ "1": {
1602
+ "name": "punctuation.definition.tuple.begin.erlang"
1603
+ }
1604
+ },
1605
+ "end": "(\\})",
1606
+ "endCaptures": {
1607
+ "1": {
1608
+ "name": "punctuation.definition.tuple.end.erlang"
1609
+ }
1610
+ },
1611
+ "name": "meta.structure.tuple.erlang",
1612
+ "patterns": [
1613
+ {
1614
+ "match": ",",
1615
+ "name": "punctuation.separator.tuple.erlang"
1616
+ },
1617
+ {
1618
+ "include": "#everything-else"
1619
+ }
1620
+ ]
1621
+ },
1622
+ "variable": {
1623
+ "captures": {
1624
+ "1": {
1625
+ "name": "variable.other.erlang"
1626
+ },
1627
+ "2": {
1628
+ "name": "variable.language.omitted.erlang"
1629
+ }
1630
+ },
1631
+ "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"
1632
+ }
1633
+ },
1634
+ "scopeName": "source.erlang",
1635
+ "uuid": "58EA597D-5158-4BF7-9FB2-B05135D1E166"
1636
+ }