ultraviolet 0.10.2 → 1.0.0

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 (178) hide show
  1. data/.gitmodules +3 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +28 -0
  4. data/Rakefile +18 -47
  5. data/Readme.md +89 -0
  6. data/bin/theme2latexrender +0 -0
  7. data/bin/theme2xhtmlrender +0 -0
  8. data/bin/uv +0 -0
  9. data/lib/uv.rb +78 -75
  10. data/lib/uv/render_processor.rb +128 -119
  11. data/lib/uv/utility.rb +62 -62
  12. data/lib/uv/version.rb +3 -0
  13. data/spec/spec_helper.rb +2 -0
  14. data/spec/ultraviolet_spec.rb +13 -0
  15. data/ultraviolet.gemspec +15 -0
  16. metadata +123 -271
  17. data/History.txt +0 -25
  18. data/Manifest.txt +0 -233
  19. data/README.txt +0 -52
  20. data/syntax/actionscript.syntax +0 -97
  21. data/syntax/active4d.syntax +0 -276
  22. data/syntax/active4d_html.syntax +0 -311
  23. data/syntax/active4d_ini.syntax +0 -50
  24. data/syntax/active4d_library.syntax +0 -21
  25. data/syntax/ada.syntax +0 -33
  26. data/syntax/antlr.syntax +0 -151
  27. data/syntax/apache.syntax +0 -191
  28. data/syntax/applescript.syntax +0 -384
  29. data/syntax/asp.syntax +0 -70
  30. data/syntax/asp_vb.net.syntax +0 -129
  31. data/syntax/bibtex.syntax +0 -151
  32. data/syntax/blog_html.syntax +0 -41
  33. data/syntax/blog_markdown.syntax +0 -42
  34. data/syntax/blog_text.syntax +0 -27
  35. data/syntax/blog_textile.syntax +0 -27
  36. data/syntax/build.syntax +0 -53
  37. data/syntax/bulletin_board.syntax +0 -287
  38. data/syntax/c++.syntax +0 -109
  39. data/syntax/c.syntax +0 -326
  40. data/syntax/cake.syntax +0 -55
  41. data/syntax/camlp4.syntax +0 -36
  42. data/syntax/cm.syntax +0 -32
  43. data/syntax/coldfusion.syntax +0 -119
  44. data/syntax/context_free.syntax +0 -176
  45. data/syntax/cs.syntax +0 -59
  46. data/syntax/css.syntax +0 -195
  47. data/syntax/css_experimental.syntax +0 -1925
  48. data/syntax/csv.syntax +0 -68
  49. data/syntax/d.syntax +0 -142
  50. data/syntax/diff.syntax +0 -81
  51. data/syntax/dokuwiki.syntax +0 -204
  52. data/syntax/dot.syntax +0 -47
  53. data/syntax/doxygen.syntax +0 -43
  54. data/syntax/dylan.syntax +0 -62
  55. data/syntax/eiffel.syntax +0 -78
  56. data/syntax/erlang.syntax +0 -922
  57. data/syntax/f-script.syntax +0 -80
  58. data/syntax/fortran.syntax +0 -141
  59. data/syntax/fxscript.syntax +0 -142
  60. data/syntax/greasemonkey.syntax +0 -34
  61. data/syntax/gri.syntax +0 -83
  62. data/syntax/groovy.syntax +0 -191
  63. data/syntax/gtd.syntax +0 -22
  64. data/syntax/gtdalt.syntax +0 -143
  65. data/syntax/haml.syntax +0 -88
  66. data/syntax/haskell.syntax +0 -88
  67. data/syntax/html-asp.syntax +0 -27
  68. data/syntax/html.syntax +0 -362
  69. data/syntax/html_django.syntax +0 -36
  70. data/syntax/html_for_asp.net.syntax +0 -424
  71. data/syntax/html_mason.syntax +0 -119
  72. data/syntax/html_rails.syntax +0 -40
  73. data/syntax/html_tcl.syntax +0 -26
  74. data/syntax/icalendar.syntax +0 -32
  75. data/syntax/inform.syntax +0 -48
  76. data/syntax/ini.syntax +0 -55
  77. data/syntax/installer_distribution_script.syntax +0 -77
  78. data/syntax/io.syntax +0 -81
  79. data/syntax/java.syntax +0 -211
  80. data/syntax/javaproperties.syntax +0 -20
  81. data/syntax/javascript.syntax +0 -256
  82. data/syntax/javascript_+_prototype.syntax +0 -72
  83. data/syntax/javascript_+_prototype_bracketed.syntax +0 -140
  84. data/syntax/jquery_javascript.syntax +0 -114
  85. data/syntax/json.syntax +0 -136
  86. data/syntax/languagedefinition.syntax +0 -708
  87. data/syntax/latex.syntax +0 -566
  88. data/syntax/latex_beamer.syntax +0 -41
  89. data/syntax/latex_log.syntax +0 -50
  90. data/syntax/latex_memoir.syntax +0 -64
  91. data/syntax/lexflex.syntax +0 -219
  92. data/syntax/lighttpd.syntax +0 -54
  93. data/syntax/lilypond.syntax +0 -492
  94. data/syntax/lisp.syntax +0 -61
  95. data/syntax/literate_haskell.syntax +0 -24
  96. data/syntax/logo.syntax +0 -29
  97. data/syntax/logtalk.syntax +0 -152
  98. data/syntax/lua.syntax +0 -86
  99. data/syntax/m.syntax +0 -142
  100. data/syntax/macports_portfile.syntax +0 -163
  101. data/syntax/mail.syntax +0 -118
  102. data/syntax/makefile.syntax +0 -36
  103. data/syntax/man.syntax +0 -17
  104. data/syntax/markdown.syntax +0 -543
  105. data/syntax/mediawiki.syntax +0 -567
  106. data/syntax/mel.syntax +0 -92
  107. data/syntax/mips.syntax +0 -66
  108. data/syntax/mod_perl.syntax +0 -50
  109. data/syntax/modula-3.syntax +0 -47
  110. data/syntax/moinmoin.syntax +0 -189
  111. data/syntax/mootools.syntax +0 -572
  112. data/syntax/movable_type.syntax +0 -162
  113. data/syntax/multimarkdown.syntax +0 -39
  114. data/syntax/objective-c++.syntax +0 -18
  115. data/syntax/objective-c.syntax +0 -233
  116. data/syntax/ocaml.syntax +0 -764
  117. data/syntax/ocamllex.syntax +0 -167
  118. data/syntax/ocamlyacc.syntax +0 -184
  119. data/syntax/opengl.syntax +0 -14
  120. data/syntax/pascal.syntax +0 -77
  121. data/syntax/perl.syntax +0 -1115
  122. data/syntax/php.syntax +0 -1253
  123. data/syntax/plain_text.syntax +0 -32
  124. data/syntax/pmwiki.syntax +0 -113
  125. data/syntax/postscript.syntax +0 -114
  126. data/syntax/processing.syntax +0 -106
  127. data/syntax/prolog.syntax +0 -40
  128. data/syntax/property_list.syntax +0 -635
  129. data/syntax/python.syntax +0 -868
  130. data/syntax/python_django.syntax +0 -21
  131. data/syntax/qmake_project.syntax +0 -114
  132. data/syntax/qt_c++.syntax +0 -26
  133. data/syntax/quake3_config.syntax +0 -32
  134. data/syntax/r.syntax +0 -81
  135. data/syntax/r_console.syntax +0 -16
  136. data/syntax/ragel.syntax +0 -201
  137. data/syntax/rd_r_documentation.syntax +0 -91
  138. data/syntax/regexp.syntax +0 -50
  139. data/syntax/regular_expressions_oniguruma.syntax +0 -107
  140. data/syntax/regular_expressions_python.syntax +0 -109
  141. data/syntax/release_notes.syntax +0 -46
  142. data/syntax/remind.syntax +0 -253
  143. data/syntax/restructuredtext.syntax +0 -250
  144. data/syntax/rez.syntax +0 -80
  145. data/syntax/ruby.syntax +0 -1035
  146. data/syntax/ruby_experimental.syntax +0 -145
  147. data/syntax/ruby_on_rails.syntax +0 -88
  148. data/syntax/s5.syntax +0 -69
  149. data/syntax/scheme.syntax +0 -347
  150. data/syntax/scilab.syntax +0 -41
  151. data/syntax/setext.syntax +0 -147
  152. data/syntax/shell-unix-generic.syntax +0 -384
  153. data/syntax/slate.syntax +0 -149
  154. data/syntax/smarty.syntax +0 -63
  155. data/syntax/sql.syntax +0 -237
  156. data/syntax/sql_rails.syntax +0 -18
  157. data/syntax/ssh-config.syntax +0 -33
  158. data/syntax/standard_ml.syntax +0 -121
  159. data/syntax/strings_file.syntax +0 -39
  160. data/syntax/subversion_commit_message.syntax +0 -36
  161. data/syntax/sweave.syntax +0 -84
  162. data/syntax/swig.syntax +0 -57
  163. data/syntax/tcl.syntax +0 -152
  164. data/syntax/template_toolkit.syntax +0 -121
  165. data/syntax/tex.syntax +0 -86
  166. data/syntax/tex_math.syntax +0 -49
  167. data/syntax/textile.syntax +0 -215
  168. data/syntax/tsv.syntax +0 -50
  169. data/syntax/twiki.syntax +0 -241
  170. data/syntax/txt2tags.syntax +0 -79
  171. data/syntax/vectorscript.syntax +0 -57
  172. data/syntax/xhtml_1.0.syntax +0 -4027
  173. data/syntax/xml.syntax +0 -180
  174. data/syntax/xml_strict.syntax +0 -92
  175. data/syntax/xsl.syntax +0 -60
  176. data/syntax/yaml.syntax +0 -160
  177. data/syntax/yui_javascript.syntax +0 -176
  178. data/test/test_uv.rb +0 -0
@@ -1,47 +0,0 @@
1
- ---
2
- name: Graphviz (DOT)
3
- fileTypes:
4
- - dot
5
- - DOT
6
- scopeName: source.dot
7
- uuid: 1A53D54E-6B1D-11D9-A006-000D93589AF6
8
- foldingStartMarker: \{
9
- patterns:
10
- - name: storage.type.dot
11
- match: \b(node|edge|graph|digraph|subgraph|strict)\b
12
- - name: support.constant.attribute.node.dot
13
- match: \b(bottomlabel|color|comment|distortion|fillcolor|fixedsize|fontcolor|fontname|fontsize|group|height|label|layer|orientation|peripheries|regular|shape|shapefile|sides|skew|style|toplabel|URL|width|z)\b
14
- - name: support.constant.attribute.edge.dot
15
- match: \b(arrowhead|arrowsize|arrowtail|color|comment|constraint|decorate|dir|fontcolor|fontname|fontsize|headlabel|headport|headURL|label|labelangle|labeldistance|labelfloat|labelcolor|labelfontname|labelfontsize|layer|lhead|ltail|minlen|samehead|sametail|style|taillabel|tailport|tailURL|weight)\b
16
- - name: support.constant.attribute.graph.dot
17
- match: \b(bgcolor|center|clusterrank|color|comment|compound|concentrate|fillcolor|fontname|fontpath|fontsize|label|labeljust|labelloc|layers|margin|mclimit|nodesep|nslimit|nslimit1|ordering|orientation|page|pagedir|quantum|rank|rankdir|ranksep|ratio|remincross|rotate|samplepoints|searchsize|size|style|URL)\b
18
- - name: string.quoted.double.dot
19
- endCaptures:
20
- "0":
21
- name: punctuation.definition.string.end.dot
22
- begin: "\""
23
- beginCaptures:
24
- "0":
25
- name: punctuation.definition.string.begin.dot
26
- end: "\""
27
- patterns:
28
- - name: constant.character.escape.dot
29
- match: \\.
30
- - name: comment.line.double-slash.dot
31
- captures:
32
- "1":
33
- name: punctuation.definition.comment.dot
34
- match: (//).*$\n?
35
- - name: comment.line.number-sign.dot
36
- captures:
37
- "1":
38
- name: punctuation.definition.comment.dot
39
- match: (#).*$\n?
40
- - name: comment.block.dot
41
- captures:
42
- "0":
43
- name: punctuation.definition.comment.dot
44
- begin: /\*
45
- end: \*/
46
- foldingStopMarker: \}
47
- keyEquivalent: ^~G
@@ -1,43 +0,0 @@
1
- ---
2
- name: Doxygen
3
- fileTypes:
4
- - doxygen
5
- scopeName: text.html.doxygen
6
- repository:
7
- source_doxygen:
8
- patterns:
9
- - include: "#keywords"
10
- - include: text.html.basic
11
- keywords:
12
- patterns:
13
- - name: keyword.control.doxygen
14
- captures:
15
- "1":
16
- name: punctuation.definition.keyword.doxygen
17
- match: ([\\@])((a|addindex|addtogroup|anchor|arg|attention|author|b|brief|bug|c|callgraph|callergraph|category|class|code|cond|copydoc|date|def|defgroup|deprecated|dir|dontinclude|dot|dotfile|e|else|elseif|em|endcode|endcond|enddot|endhtmlonly|endif|endlatexonly|endlink|endmanonly|endverbatim|endxmlonly|enum|example|exception|file|fn|hideinitializer|htmlinclude|htmlonly|if|ifnot|image|include|includelineno|ingroup|internal|invariant|interface|latexonly|li|line|link|mainpage|manonly|n|name|namespace|nosubgrouping|note|overload|p|package|page|par|paragraph|param|post|pre|private|privatesection|property|protected|protectedsection|protocol|public|publicsection|ref|relates|relatesalso|remarks|return|retval|sa|section|see|showinitializer|since|skip|skipline|struct|subpage|subsection|subsubsection|test|throw|todo|typedef|union|until|var|verbatim|verbinclude|version|warning|weakgroup|xmlonly|xrefitem)\b|(\$|\@|\\|\&|\~|\<|\>|\#|\%|f\$|f\[|f\]))
18
- uuid: 9725E602-6D7C-4E98-911A-C66802142451
19
- patterns:
20
- - name: comment.block.doxygen
21
- captures:
22
- "0":
23
- name: punctuation.definition.comment.doxygen
24
- begin: \/\*\*\<?
25
- end: \*\/
26
- patterns:
27
- - include: "#source_doxygen"
28
- - name: comment.block.doxygen
29
- captures:
30
- "0":
31
- name: punctuation.definition.comment.doxygen
32
- begin: \/\*!\<?
33
- end: \*\/
34
- patterns:
35
- - include: "#source_doxygen"
36
- - name: comment.line.doxygen
37
- begin: \/\/[\/!]\<?
38
- beginCaptures:
39
- "0":
40
- name: punctuation.definition.comment.doxygen
41
- end: $\n?
42
- patterns:
43
- - include: "#source_doxygen"
@@ -1,62 +0,0 @@
1
- ---
2
- name: Dylan
3
- fileTypes:
4
- - dylan
5
- scopeName: source.dylan
6
- uuid: 475B8369-3520-4B4C-BBA1-1D1229C6F397
7
- foldingStartMarker: \b(define|begin|block)\b
8
- patterns:
9
- - name: comment.block.dylan
10
- captures:
11
- "0":
12
- name: punctuation.definition.comment.dylan
13
- begin: /\*
14
- end: \*/
15
- comment: TODO -- Dylan allows nested comments.
16
- - name: comment.line.double-slash.dylan
17
- begin: //
18
- beginCaptures:
19
- "0":
20
- name: punctuation.definition.comment.dylan
21
- end: $\n?
22
- patterns:
23
- - name: punctuation.separator.continuation.dylan
24
- match: (?>\\\s*\n)
25
- - name: meta.function.dylan
26
- captures:
27
- "1":
28
- name: keyword.control.def.dylan
29
- "2":
30
- name: storage.modifier.dylan
31
- "3":
32
- name: storage.type.function.dylan
33
- "4":
34
- name: entity.name.function.dylan
35
- begin: \b(define\s+)((?:sealed|inline)\s)?(method|function)\s+([A-Za-z0-9\\-]*[!?]?)\s
36
- end: \)
37
- - name: keyword.control.dylan
38
- 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
39
- - name: support.constant.language.dylan
40
- match: (#t|#f|#next|#rest|#key|#all-keys|#include)
41
- - name: keyword.control.sealing-directives.dylan
42
- match: \b(sealed|open|abstract|concrete|primary|free)\b
43
- - name: constant.numeric.dylan
44
- match: \b((#x[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b
45
- - name: string.quoted.double.dylan
46
- endCaptures:
47
- "0":
48
- name: punctuation.definition.string.end.dylan
49
- begin: "\""
50
- beginCaptures:
51
- "0":
52
- name: punctuation.definition.string.begin.dylan
53
- end: "\""
54
- patterns:
55
- - name: constant.character.escape.dylan
56
- match: \\.
57
- - name: support.class.dylan
58
- 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)>
59
- - name: support.function.dylan
60
- 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
61
- foldingStopMarker: \bend\b
62
- keyEquivalent: ^~D
@@ -1,78 +0,0 @@
1
- ---
2
- name: Eiffel
3
- fileTypes:
4
- - e
5
- scopeName: source.eiffel
6
- repository:
7
- number:
8
- match: "[0-9]+"
9
- variable:
10
- match: "[a-zA-Z0-9_]+"
11
- uuid: 34672373-DED9-45B8-AF7E-2E4B6C3D6B76
12
- foldingStartMarker: (class|once|do|external)
13
- patterns:
14
- - name: comment.line.double-dash.eiffel
15
- captures:
16
- "1":
17
- name: punctuation.definition.comment.eiffel
18
- match: (--).*$\n?
19
- - name: keyword.control.eiffel
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: variable.other.eiffel
22
- match: "[a-zA-Z_]+"
23
- - name: constant.language.eiffel
24
- match: \b(True|true|False|false|Void|void|Result|result)\b
25
- - name: meta.features.eiffel
26
- begin: feature
27
- end: end
28
- - name: meta.effective_routine_body.eiffel
29
- begin: (do|once)
30
- end: (ensure|end)
31
- - name: meta.rescue.eiffel
32
- begin: rescue
33
- end: end
34
- - name: string.quoted.double.eiffel
35
- endCaptures:
36
- "0":
37
- name: punctuation.definition.string.end.eiffel
38
- begin: "\""
39
- beginCaptures:
40
- "0":
41
- name: punctuation.definition.string.begin.eiffel
42
- end: "\""
43
- patterns:
44
- - name: constant.character.escape.eiffel
45
- match: \\.
46
- - name: constant.numeric.eiffel
47
- match: "[0-9]+"
48
- - name: storage.modifier.eiffel
49
- match: \b(deferred|expanded)\b
50
- - name: meta.definition.class.eiffel
51
- captures:
52
- "1":
53
- name: storage.modifier.eiffel
54
- begin: |-
55
- ^\s*
56
- ((?:\b(deferred|expanded)\b\s*)*) # modifier
57
- (class)\s+
58
- (\w+)\s* # identifier
59
- end: (?=end)
60
- patterns:
61
- - name: meta.definition.class.extends.java
62
- captures:
63
- "1":
64
- name: storage.modifier.java
65
- begin: \b(extends)\b\s+
66
- end: (?={|implements)
67
- patterns:
68
- - include: "#all-types"
69
- - name: meta.definition.class.implements.java
70
- captures:
71
- "1":
72
- name: storage.modifier.java
73
- begin: \b(implements)\b\s+
74
- end: (?={|extends)
75
- patterns:
76
- - include: "#all-types"
77
- foldingStopMarker: (ensure|end)
78
- keyEquivalent: ^~E
@@ -1,922 +0,0 @@
1
- ---
2
- name: Erlang
3
- fileTypes:
4
- - erl
5
- - hrl
6
- scopeName: source.erlang
7
- repository:
8
- macro-usage:
9
- name: meta.macro-usage.erlang
10
- captures:
11
- "1":
12
- name: keyword.operator.macro.erlang
13
- "2":
14
- name: entity.name.function.macro.erlang
15
- match: (\?\??)\s*+([a-zA-Z\d@_]++)
16
- list:
17
- name: meta.structure.list.erlang
18
- endCaptures:
19
- "1":
20
- name: punctuation.definition.list.end.erlang
21
- begin: (\[)
22
- beginCaptures:
23
- "1":
24
- name: punctuation.definition.list.begin.erlang
25
- end: (\])
26
- patterns:
27
- - name: punctuation.separator.list.erlang
28
- match: \||\|\||,
29
- - include: "#everything-else"
30
- import-export-directive:
31
- patterns:
32
- - name: meta.directive.import.erlang
33
- endCaptures:
34
- "1":
35
- name: punctuation.definition.parameters.end.erlang
36
- "2":
37
- name: punctuation.section.directive.end.erlang
38
- begin: ^\s*+(-)\s*+(import)\s*+(\()\s*+([a-z][a-zA-Z\d@_]*+)\s*+(,)
39
- beginCaptures:
40
- "1":
41
- name: punctuation.section.directive.begin.erlang
42
- "2":
43
- name: keyword.control.directive.import.erlang
44
- "3":
45
- name: punctuation.definition.parameters.begin.erlang
46
- "4":
47
- name: entity.name.type.class.module.erlang
48
- "5":
49
- name: punctuation.separator.parameters.erlang
50
- end: (\))\s*+(\.)
51
- patterns:
52
- - include: "#internal-function-list"
53
- - name: meta.directive.export.erlang
54
- endCaptures:
55
- "1":
56
- name: punctuation.definition.parameters.end.erlang
57
- "2":
58
- name: punctuation.section.directive.end.erlang
59
- begin: ^\s*+(-)\s*+(export)\s*+(\()
60
- beginCaptures:
61
- "1":
62
- name: punctuation.section.directive.begin.erlang
63
- "2":
64
- name: keyword.control.directive.export.erlang
65
- "3":
66
- name: punctuation.definition.parameters.begin.erlang
67
- end: (\))\s*+(\.)
68
- patterns:
69
- - include: "#internal-function-list"
70
- symbolic-operator:
71
- name: keyword.operator.symbolic.erlang
72
- match: \+\+|\+|--|-|\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!
73
- number:
74
- begin: (?=\d)
75
- end: (?!\d)
76
- patterns:
77
- - name: constant.numeric.float.erlang
78
- captures:
79
- "1":
80
- name: punctuation.separator.integer-float.erlang
81
- "3":
82
- name: punctuation.separator.float-exponent.erlang
83
- match: \d++(\.)\d++(([eE][\+\-])?\d++)?
84
- - name: constant.numeric.integer.binary.erlang
85
- captures:
86
- "1":
87
- name: punctuation.separator.base-integer.erlang
88
- match: 2(#)[0-1]++
89
- - name: constant.numeric.integer.base-3.erlang
90
- captures:
91
- "1":
92
- name: punctuation.separator.base-integer.erlang
93
- match: 3(#)[0-2]++
94
- - name: constant.numeric.integer.base-4.erlang
95
- captures:
96
- "1":
97
- name: punctuation.separator.base-integer.erlang
98
- match: 4(#)[0-3]++
99
- - name: constant.numeric.integer.base-5.erlang
100
- captures:
101
- "1":
102
- name: punctuation.separator.base-integer.erlang
103
- match: 5(#)[0-4]++
104
- - name: constant.numeric.integer.base-6.erlang
105
- captures:
106
- "1":
107
- name: punctuation.separator.base-integer.erlang
108
- match: 6(#)[0-5]++
109
- - name: constant.numeric.integer.base-7.erlang
110
- captures:
111
- "1":
112
- name: punctuation.separator.base-integer.erlang
113
- match: 7(#)[0-6]++
114
- - name: constant.numeric.integer.octal.erlang
115
- captures:
116
- "1":
117
- name: punctuation.separator.base-integer.erlang
118
- match: 8(#)[0-7]++
119
- - name: constant.numeric.integer.base-9.erlang
120
- captures:
121
- "1":
122
- name: punctuation.separator.base-integer.erlang
123
- match: 9(#)[0-8]++
124
- - name: constant.numeric.integer.decimal.erlang
125
- captures:
126
- "1":
127
- name: punctuation.separator.base-integer.erlang
128
- match: 10(#)\d++
129
- - name: constant.numeric.integer.base-11.erlang
130
- captures:
131
- "1":
132
- name: punctuation.separator.base-integer.erlang
133
- match: 11(#)[\daA]++
134
- - name: constant.numeric.integer.base-12.erlang
135
- captures:
136
- "1":
137
- name: punctuation.separator.base-integer.erlang
138
- match: 12(#)[\da-bA-B]++
139
- - name: constant.numeric.integer.base-13.erlang
140
- captures:
141
- "1":
142
- name: punctuation.separator.base-integer.erlang
143
- match: 13(#)[\da-cA-C]++
144
- - name: constant.numeric.integer.base-14.erlang
145
- captures:
146
- "1":
147
- name: punctuation.separator.base-integer.erlang
148
- match: 14(#)[\da-dA-D]++
149
- - name: constant.numeric.integer.base-15.erlang
150
- captures:
151
- "1":
152
- name: punctuation.separator.base-integer.erlang
153
- match: 15(#)[\da-eA-E]++
154
- - name: constant.numeric.integer.hexadecimal.erlang
155
- captures:
156
- "1":
157
- name: punctuation.separator.base-integer.erlang
158
- match: 16(#)\h++
159
- - name: constant.numeric.integer.base-17.erlang
160
- captures:
161
- "1":
162
- name: punctuation.separator.base-integer.erlang
163
- match: 17(#)[\da-gA-G]++
164
- - name: constant.numeric.integer.base-18.erlang
165
- captures:
166
- "1":
167
- name: punctuation.separator.base-integer.erlang
168
- match: 18(#)[\da-hA-H]++
169
- - name: constant.numeric.integer.base-19.erlang
170
- captures:
171
- "1":
172
- name: punctuation.separator.base-integer.erlang
173
- match: 19(#)[\da-iA-I]++
174
- - name: constant.numeric.integer.base-20.erlang
175
- captures:
176
- "1":
177
- name: punctuation.separator.base-integer.erlang
178
- match: 20(#)[\da-jA-J]++
179
- - name: constant.numeric.integer.base-21.erlang
180
- captures:
181
- "1":
182
- name: punctuation.separator.base-integer.erlang
183
- match: 21(#)[\da-kA-K]++
184
- - name: constant.numeric.integer.base-22.erlang
185
- captures:
186
- "1":
187
- name: punctuation.separator.base-integer.erlang
188
- match: 22(#)[\da-lA-L]++
189
- - name: constant.numeric.integer.base-23.erlang
190
- captures:
191
- "1":
192
- name: punctuation.separator.base-integer.erlang
193
- match: 23(#)[\da-mA-M]++
194
- - name: constant.numeric.integer.base-24.erlang
195
- captures:
196
- "1":
197
- name: punctuation.separator.base-integer.erlang
198
- match: 24(#)[\da-nA-N]++
199
- - name: constant.numeric.integer.base-25.erlang
200
- captures:
201
- "1":
202
- name: punctuation.separator.base-integer.erlang
203
- match: 25(#)[\da-oA-O]++
204
- - name: constant.numeric.integer.base-26.erlang
205
- captures:
206
- "1":
207
- name: punctuation.separator.base-integer.erlang
208
- match: 26(#)[\da-pA-P]++
209
- - name: constant.numeric.integer.base-27.erlang
210
- captures:
211
- "1":
212
- name: punctuation.separator.base-integer.erlang
213
- match: 27(#)[\da-qA-Q]++
214
- - name: constant.numeric.integer.base-28.erlang
215
- captures:
216
- "1":
217
- name: punctuation.separator.base-integer.erlang
218
- match: 28(#)[\da-rA-R]++
219
- - name: constant.numeric.integer.base-29.erlang
220
- captures:
221
- "1":
222
- name: punctuation.separator.base-integer.erlang
223
- match: 29(#)[\da-sA-S]++
224
- - name: constant.numeric.integer.base-30.erlang
225
- captures:
226
- "1":
227
- name: punctuation.separator.base-integer.erlang
228
- match: 30(#)[\da-tA-T]++
229
- - name: constant.numeric.integer.base-31.erlang
230
- captures:
231
- "1":
232
- name: punctuation.separator.base-integer.erlang
233
- match: 31(#)[\da-uA-U]++
234
- - name: constant.numeric.integer.base-32.erlang
235
- captures:
236
- "1":
237
- name: punctuation.separator.base-integer.erlang
238
- match: 32(#)[\da-vA-V]++
239
- - name: constant.numeric.integer.base-33.erlang
240
- captures:
241
- "1":
242
- name: punctuation.separator.base-integer.erlang
243
- match: 33(#)[\da-wA-W]++
244
- - name: constant.numeric.integer.base-34.erlang
245
- captures:
246
- "1":
247
- name: punctuation.separator.base-integer.erlang
248
- match: 34(#)[\da-xA-X]++
249
- - name: constant.numeric.integer.base-35.erlang
250
- captures:
251
- "1":
252
- name: punctuation.separator.base-integer.erlang
253
- match: 35(#)[\da-yA-Y]++
254
- - name: constant.numeric.integer.base-36.erlang
255
- captures:
256
- "1":
257
- name: punctuation.separator.base-integer.erlang
258
- match: 36(#)[\da-zA-Z]++
259
- - name: invalid.illegal.integer.erlang
260
- match: \d++#[\da-zA-Z]++
261
- - name: constant.numeric.integer.decimal.erlang
262
- match: \d++
263
- internal-type-specifiers:
264
- begin: (/)
265
- beginCaptures:
266
- "1":
267
- name: punctuation.separator.value-type.erlang
268
- end: (?=,|:|>>)
269
- patterns:
270
- - captures:
271
- "1":
272
- name: storage.type.erlang
273
- "2":
274
- name: storage.modifier.signedness.erlang
275
- "3":
276
- name: storage.modifier.endianness.erlang
277
- "4":
278
- name: storage.modifier.unit.erlang
279
- "5":
280
- name: punctuation.separator.type-specifiers.erlang
281
- match: (integer|float|binary)|(signed|unsigned)|(big|little|native)|(unit)|(-)
282
- character:
283
- patterns:
284
- - name: constant.character.erlang
285
- captures:
286
- "1":
287
- name: punctuation.definition.character.erlang
288
- "2":
289
- name: constant.character.escape.erlang
290
- "3":
291
- name: punctuation.definition.escape.erlang
292
- "5":
293
- name: punctuation.definition.escape.erlang
294
- match: (\$)((\\)([bdefnrstv\\'"]|(\^)[@-_]|[0-7]{1,3}))
295
- - name: invalid.illegal.character.erlang
296
- match: \$\\\^?.?
297
- - name: constant.character.erlang
298
- captures:
299
- "1":
300
- name: punctuation.definition.character.erlang
301
- match: (\$)\S
302
- - name: invalid.illegal.character.erlang
303
- match: \$.?
304
- macro-directive:
305
- patterns:
306
- - name: meta.directive.ifdef.erlang
307
- captures:
308
- "6":
309
- name: punctuation.section.directive.end.erlang
310
- "1":
311
- name: punctuation.section.directive.begin.erlang
312
- "2":
313
- name: keyword.control.directive.ifdef.erlang
314
- "3":
315
- name: punctuation.definition.parameters.begin.erlang
316
- "4":
317
- name: entity.name.function.macro.erlang
318
- "5":
319
- name: punctuation.definition.parameters.end.erlang
320
- match: ^\s*+(-)\s*+(ifdef)\s*+(\()\s*+([a-zA-z\d@_]++)\s*+(\))\s*+(\.)
321
- - name: meta.directive.ifndef.erlang
322
- captures:
323
- "6":
324
- name: punctuation.section.directive.end.erlang
325
- "1":
326
- name: punctuation.section.directive.begin.erlang
327
- "2":
328
- name: keyword.control.directive.ifndef.erlang
329
- "3":
330
- name: punctuation.definition.parameters.begin.erlang
331
- "4":
332
- name: entity.name.function.macro.erlang
333
- "5":
334
- name: punctuation.definition.parameters.end.erlang
335
- match: ^\s*+(-)\s*+(ifndef)\s*+(\()\s*+([a-zA-z\d@_]++)\s*+(\))\s*+(\.)
336
- - name: meta.directive.undef.erlang
337
- captures:
338
- "6":
339
- name: punctuation.section.directive.end.erlang
340
- "1":
341
- name: punctuation.section.directive.begin.erlang
342
- "2":
343
- name: keyword.control.directive.undef.erlang
344
- "3":
345
- name: punctuation.definition.parameters.begin.erlang
346
- "4":
347
- name: entity.name.function.macro.erlang
348
- "5":
349
- name: punctuation.definition.parameters.end.erlang
350
- match: ^\s*+(-)\s*+(undef)\s*+(\()\s*+([a-zA-z\d@_]++)\s*+(\))\s*+(\.)
351
- internal-record-body:
352
- name: meta.structure.record.erlang
353
- begin: (\{)
354
- beginCaptures:
355
- "1":
356
- name: punctuation.definition.class.record.begin.erlang
357
- end: (?=\})
358
- patterns:
359
- - endCaptures:
360
- "1":
361
- name: punctuation.separator.class.record.erlang
362
- begin: (([a-z][a-zA-Z\d@_]*+)|(_))\s*+(=)
363
- beginCaptures:
364
- "2":
365
- name: variable.other.field.erlang
366
- "3":
367
- name: variable.language.omitted.field.erlang
368
- "4":
369
- name: keyword.operator.assignment.erlang
370
- end: (,)|(?=\})
371
- patterns:
372
- - include: "#everything-else"
373
- - captures:
374
- "1":
375
- name: variable.other.field.erlang
376
- "2":
377
- name: punctuation.separator.class.record.erlang
378
- match: ([a-z][a-zA-Z\d@_]*+)\s*+(,)?
379
- - include: "#everything-else"
380
- internal-function-list:
381
- name: meta.structure.list.function.erlang
382
- endCaptures:
383
- "1":
384
- name: punctuation.definition.list.end.erlang
385
- begin: (\[)
386
- beginCaptures:
387
- "1":
388
- name: punctuation.definition.list.begin.erlang
389
- end: (\])
390
- patterns:
391
- - endCaptures:
392
- "1":
393
- name: punctuation.separator.list.erlang
394
- begin: ([a-z][a-zA-Z\d@_]*+)\s*+(/)
395
- beginCaptures:
396
- "1":
397
- name: entity.name.function.erlang
398
- "2":
399
- name: punctuation.separator.function-arity.erlang
400
- end: (,)|(?=\])
401
- patterns:
402
- - include: "#everything-else"
403
- - include: "#everything-else"
404
- internal-expression-punctuation:
405
- captures:
406
- "1":
407
- name: punctuation.separator.clause-head-body.erlang
408
- "2":
409
- name: punctuation.separator.clauses.erlang
410
- "3":
411
- name: punctuation.separator.expressions.erlang
412
- match: (->)|(;)|(,)
413
- directive:
414
- patterns:
415
- - name: meta.directive.erlang
416
- endCaptures:
417
- "1":
418
- name: punctuation.definition.parameters.end.erlang
419
- "2":
420
- name: punctuation.section.directive.end.erlang
421
- begin: ^\s*+(-)\s*+([a-z][a-zA-Z\d@_]*+)\s*+(\()
422
- beginCaptures:
423
- "1":
424
- name: punctuation.section.directive.begin.erlang
425
- "2":
426
- name: keyword.control.directive.erlang
427
- "3":
428
- name: punctuation.definition.parameters.begin.erlang
429
- end: (\))\s*+(\.)
430
- patterns:
431
- - include: "#everything-else"
432
- - name: meta.directive.erlang
433
- captures:
434
- "1":
435
- name: punctuation.section.directive.begin.erlang
436
- "2":
437
- name: keyword.control.directive.erlang
438
- "3":
439
- name: punctuation.section.directive.end.erlang
440
- match: ^\s*+(-)\s*+([a-z][a-zA-Z\d@_]*+)\s*+(\.)
441
- binary:
442
- name: meta.structure.binary.erlang
443
- endCaptures:
444
- "1":
445
- name: punctuation.definition.binary.end.erlang
446
- begin: (<<)
447
- beginCaptures:
448
- "1":
449
- name: punctuation.definition.binary.begin.erlang
450
- end: (>>)
451
- patterns:
452
- - captures:
453
- "1":
454
- name: punctuation.separator.binary.erlang
455
- "2":
456
- name: punctuation.separator.value-size.erlang
457
- match: (,)|(:)
458
- - include: "#internal-type-specifiers"
459
- - include: "#everything-else"
460
- function:
461
- name: meta.function.erlang
462
- endCaptures:
463
- "1":
464
- name: punctuation.terminator.function.erlang
465
- begin: ^\s*+([a-z][a-zA-Z\d@_]*+)\s*+(?=\()
466
- beginCaptures:
467
- "1":
468
- name: entity.name.function.definition.erlang
469
- end: (\.)
470
- patterns:
471
- - endCaptures:
472
- "1":
473
- name: punctuation.separator.clauses.erlang
474
- begin: (?=\()
475
- end: (;)|(?=\.)
476
- patterns:
477
- - include: "#internal-function-parts"
478
- - captures:
479
- "1":
480
- name: entity.name.function.erlang
481
- match: ^\s*+([a-z][a-zA-Z\d@_]*+)\s*+(?=\()
482
- - include: "#everything-else"
483
- expression:
484
- patterns:
485
- - name: meta.expression.if.erlang
486
- endCaptures:
487
- "1":
488
- name: keyword.control.end.erlang
489
- begin: \b(if)\b
490
- beginCaptures:
491
- "1":
492
- name: keyword.control.if.erlang
493
- end: \b(end)\b
494
- patterns:
495
- - include: "#internal-expression-punctuation"
496
- - include: "#everything-else"
497
- - name: meta.expression.case.erlang
498
- endCaptures:
499
- "1":
500
- name: keyword.control.end.erlang
501
- begin: \b(case)\b
502
- beginCaptures:
503
- "1":
504
- name: keyword.control.case.erlang
505
- end: \b(end)\b
506
- patterns:
507
- - include: "#internal-expression-punctuation"
508
- - include: "#everything-else"
509
- - name: meta.expression.receive.erlang
510
- endCaptures:
511
- "1":
512
- name: keyword.control.end.erlang
513
- begin: \b(receive)\b
514
- beginCaptures:
515
- "1":
516
- name: keyword.control.receive.erlang
517
- end: \b(end)\b
518
- patterns:
519
- - include: "#internal-expression-punctuation"
520
- - include: "#everything-else"
521
- - captures:
522
- "6":
523
- name: punctuation.separator.function-arity.erlang
524
- "1":
525
- name: keyword.control.fun.erlang
526
- "3":
527
- name: entity.name.type.class.module.erlang
528
- "4":
529
- name: punctuation.separator.module-function.erlang
530
- "5":
531
- name: entity.name.function.erlang
532
- match: \b(fun)\s*+(([a-z][a-zA-Z\d@_]*+)\s*+(:)\s*+)?([a-z][a-zA-Z\d@_]*+)\s*(/)
533
- - name: meta.expression.fun.erlang
534
- endCaptures:
535
- "1":
536
- name: keyword.control.end.erlang
537
- begin: \b(fun)\b
538
- beginCaptures:
539
- "1":
540
- name: keyword.control.fun.erlang
541
- end: \b(end)\b
542
- patterns:
543
- - endCaptures:
544
- "1":
545
- name: punctuation.separator.clauses.erlang
546
- begin: (?=\()
547
- end: (;)|(?=\bend\b)
548
- patterns:
549
- - include: "#internal-function-parts"
550
- - include: "#everything-else"
551
- - name: meta.expression.try.erlang
552
- endCaptures:
553
- "1":
554
- name: keyword.control.end.erlang
555
- begin: \b(try)\b
556
- beginCaptures:
557
- "1":
558
- name: keyword.control.try.erlang
559
- end: \b(end)\b
560
- patterns:
561
- - include: "#internal-expression-punctuation"
562
- - include: "#everything-else"
563
- - name: meta.expression.begin.erlang
564
- endCaptures:
565
- "1":
566
- name: keyword.control.end.erlang
567
- begin: \b(begin)\b
568
- beginCaptures:
569
- "1":
570
- name: keyword.control.begin.erlang
571
- end: \b(end)\b
572
- patterns:
573
- - include: "#internal-expression-punctuation"
574
- - include: "#everything-else"
575
- - name: meta.expression.query.erlang
576
- endCaptures:
577
- "1":
578
- name: keyword.control.end.erlang
579
- begin: \b(query)\b
580
- beginCaptures:
581
- "1":
582
- name: keyword.control.query.erlang
583
- end: \b(end)\b
584
- patterns:
585
- - include: "#everything-else"
586
- module-directive:
587
- name: meta.directive.module.erlang
588
- captures:
589
- "6":
590
- name: punctuation.section.directive.end.erlang
591
- "1":
592
- name: punctuation.section.directive.begin.erlang
593
- "2":
594
- name: keyword.control.directive.module.erlang
595
- "3":
596
- name: punctuation.definition.parameters.begin.erlang
597
- "4":
598
- name: entity.name.type.class.module.definition.erlang
599
- "5":
600
- name: punctuation.definition.parameters.end.erlang
601
- match: ^\s*+(-)\s*+(module)\s*+(\()\s*+([a-z][a-zA-Z\d@_]*+)\s*+(\))\s*+(\.)
602
- define-directive:
603
- patterns:
604
- - name: meta.directive.define.erlang
605
- endCaptures:
606
- "1":
607
- name: punctuation.definition.parameters.end.erlang
608
- "2":
609
- name: punctuation.section.directive.end.erlang
610
- begin: ^\s*+(-)\s*+(define)\s*+(\()\s*+([a-zA-Z\d@_]++)\s*+(,)
611
- beginCaptures:
612
- "1":
613
- name: punctuation.section.directive.begin.erlang
614
- "2":
615
- name: keyword.control.directive.define.erlang
616
- "3":
617
- name: punctuation.definition.parameters.begin.erlang
618
- "4":
619
- name: entity.name.function.macro.definition.erlang
620
- "5":
621
- name: punctuation.separator.parameters.erlang
622
- end: (\))\s*+(\.)
623
- patterns:
624
- - include: "#everything-else"
625
- - name: meta.directive.define.erlang
626
- endCaptures:
627
- "1":
628
- name: punctuation.definition.parameters.end.erlang
629
- "2":
630
- name: punctuation.section.directive.end.erlang
631
- begin: (?=^\s*+-\s*+define\s*+\(\s*+[a-zA-Z\d@_]++\s*+\()
632
- end: (\))\s*+(\.)
633
- patterns:
634
- - endCaptures:
635
- "1":
636
- name: punctuation.definition.parameters.end.erlang
637
- "2":
638
- name: punctuation.separator.parameters.erlang
639
- begin: ^\s*+(-)\s*+(define)\s*+(\()\s*+([a-zA-Z\d@_]++)\s*+(\()
640
- beginCaptures:
641
- "1":
642
- name: punctuation.section.directive.begin.erlang
643
- "2":
644
- name: keyword.control.directive.define.erlang
645
- "3":
646
- name: punctuation.definition.parameters.begin.erlang
647
- "4":
648
- name: entity.name.function.macro.definition.erlang
649
- "5":
650
- name: punctuation.definition.parameters.begin.erlang
651
- end: (\))\s*(,)
652
- patterns:
653
- - name: punctuation.separator.parameters.erlang
654
- match: ","
655
- - include: "#everything-else"
656
- - name: punctuation.separator.define.erlang
657
- match: \|\||\||:|;|,|\.|->
658
- - include: "#everything-else"
659
- tuple:
660
- name: meta.structure.tuple.erlang
661
- endCaptures:
662
- "1":
663
- name: punctuation.definition.tuple.end.erlang
664
- begin: (\{)
665
- beginCaptures:
666
- "1":
667
- name: punctuation.definition.tuple.begin.erlang
668
- end: (\})
669
- patterns:
670
- - name: punctuation.separator.tuple.erlang
671
- match: ","
672
- - include: "#everything-else"
673
- textual-operator:
674
- name: keyword.operator.textual.erlang
675
- match: \b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\b
676
- record-directive:
677
- name: meta.directive.record.erlang
678
- endCaptures:
679
- "1":
680
- name: meta.structure.record.erlang
681
- "2":
682
- name: punctuation.definition.class.record.end.erlang
683
- "3":
684
- name: punctuation.definition.parameters.end.erlang
685
- "4":
686
- name: punctuation.section.directive.end.erlang
687
- begin: ^\s*+(-)\s*+(record)\s*+(\()\s*+([a-z][a-zA-Z\d@_]*+)\s*+(,)
688
- beginCaptures:
689
- "1":
690
- name: punctuation.section.directive.begin.erlang
691
- "2":
692
- name: keyword.control.directive.import.erlang
693
- "3":
694
- name: punctuation.definition.parameters.begin.erlang
695
- "4":
696
- name: entity.name.type.class.record.definition.erlang
697
- "5":
698
- name: punctuation.separator.parameters.erlang
699
- end: ((\}))\s*+(\))\s*+(\.)
700
- patterns:
701
- - include: "#internal-record-body"
702
- function-call:
703
- name: meta.function-call.erlang
704
- endCaptures:
705
- "1":
706
- name: punctuation.definition.parameters.end.erlang
707
- begin: (?=[a-z][a-zA-Z\d@_]*+\s*+(\(|:\s*+[a-z][a-zA-Z\d@_]*+\s*+\())
708
- end: (\))
709
- patterns:
710
- - 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*+(\()
711
- beginCaptures:
712
- "2":
713
- name: entity.name.type.class.module.erlang
714
- "3":
715
- name: punctuation.separator.module-function.erlang
716
- "4":
717
- name: entity.name.function.guard.erlang
718
- "5":
719
- name: punctuation.definition.parameters.begin.erlang
720
- end: (?=\))
721
- patterns:
722
- - name: punctuation.separator.parameters.erlang
723
- match: ","
724
- - include: "#everything-else"
725
- - begin: (([a-z][a-zA-Z\d@_]*+)\s*+(:)\s*+)?([a-z][a-zA-Z\d@_]*+)\s*+(\()
726
- beginCaptures:
727
- "2":
728
- name: entity.name.type.class.module.erlang
729
- "3":
730
- name: punctuation.separator.module-function.erlang
731
- "4":
732
- name: entity.name.function.erlang
733
- "5":
734
- name: punctuation.definition.parameters.begin.erlang
735
- end: (?=\))
736
- patterns:
737
- - name: punctuation.separator.parameters.erlang
738
- match: ","
739
- - include: "#everything-else"
740
- everything-else:
741
- patterns:
742
- - include: "#comment"
743
- - include: "#record-usage"
744
- - include: "#macro-usage"
745
- - include: "#expression"
746
- - include: "#keyword"
747
- - include: "#textual-operator"
748
- - include: "#function-call"
749
- - include: "#tuple"
750
- - include: "#list"
751
- - include: "#binary"
752
- - include: "#parenthesized-expression"
753
- - include: "#character"
754
- - include: "#number"
755
- - include: "#atom"
756
- - include: "#string"
757
- - include: "#symbolic-operator"
758
- - include: "#variable"
759
- record-usage:
760
- patterns:
761
- - name: meta.record-usage.erlang
762
- captures:
763
- "1":
764
- name: keyword.operator.record.erlang
765
- "2":
766
- name: entity.name.type.class.record.erlang
767
- "3":
768
- name: punctuation.separator.record-field.erlang
769
- "4":
770
- name: variable.other.field.erlang
771
- match: (#)\s*+([a-z][a-zA-Z\d@_]*+)\s*+(\.)\s*+([a-z][a-zA-Z\d@_]*+)
772
- - name: meta.record-usage.erlang
773
- endCaptures:
774
- "1":
775
- name: meta.structure.record.erlang
776
- "2":
777
- name: punctuation.definition.class.record.end.erlang
778
- begin: (#)\s*+([a-z][a-zA-Z\d@_]*+)
779
- beginCaptures:
780
- "1":
781
- name: keyword.operator.record.erlang
782
- "2":
783
- name: entity.name.type.class.record.erlang
784
- end: ((\}))
785
- patterns:
786
- - include: "#internal-record-body"
787
- parenthesized-expression:
788
- name: meta.expression.parenthesized
789
- endCaptures:
790
- "1":
791
- name: punctuation.section.expression.end.erlang
792
- begin: (\()
793
- beginCaptures:
794
- "1":
795
- name: punctuation.section.expression.begin.erlang
796
- end: (\))
797
- patterns:
798
- - include: "#everything-else"
799
- keyword:
800
- name: keyword.control.erlang
801
- match: \b(after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\b
802
- internal-function-parts:
803
- patterns:
804
- - endCaptures:
805
- "1":
806
- name: punctuation.separator.clause-head-body.erlang
807
- begin: (?=\()
808
- end: (->)
809
- patterns:
810
- - endCaptures:
811
- "1":
812
- name: punctuation.definition.parameters.end.erlang
813
- begin: (\()
814
- beginCaptures:
815
- "1":
816
- name: punctuation.definition.parameters.begin.erlang
817
- end: (\))
818
- patterns:
819
- - name: punctuation.separator.parameters.erlang
820
- match: ","
821
- - include: "#everything-else"
822
- - name: punctuation.separator.guards.erlang
823
- match: ,|;
824
- - include: "#everything-else"
825
- - name: punctuation.separator.expressions.erlang
826
- match: ","
827
- - include: "#everything-else"
828
- comment:
829
- name: comment.line.erlang
830
- begin: (%)
831
- beginCaptures:
832
- "1":
833
- name: punctuation.definition.comment.erlang
834
- end: $\n?
835
- variable:
836
- captures:
837
- "1":
838
- name: variable.other.erlang
839
- "2":
840
- name: variable.language.omitted.erlang
841
- match: (_[a-zA-Z\d@_]++|[A-Z][a-zA-Z\d@_]*+)|(_)
842
- string:
843
- name: string.quoted.double.erlang
844
- endCaptures:
845
- "1":
846
- name: punctuation.definition.string.end.erlang
847
- begin: (")
848
- beginCaptures:
849
- "1":
850
- name: punctuation.definition.string.begin.erlang
851
- end: (")
852
- patterns:
853
- - name: constant.character.escape.erlang
854
- captures:
855
- "1":
856
- name: punctuation.definition.escape.erlang
857
- "3":
858
- name: punctuation.definition.escape.erlang
859
- match: (\\)([bdefnrstv\\'"]|(\^)[@-_]|[0-7]{1,3})
860
- - name: invalid.illegal.string.erlang
861
- match: \\\^?.?
862
- - name: constant.other.placeholder.erlang
863
- captures:
864
- "6":
865
- name: punctuation.separator.placeholder-parts.erlang
866
- "12":
867
- name: punctuation.separator.placeholder-parts.erlang
868
- "8":
869
- name: punctuation.separator.placeholder-parts.erlang
870
- "1":
871
- name: punctuation.definition.placeholder.erlang
872
- "3":
873
- name: punctuation.separator.placeholder-parts.erlang
874
- "4":
875
- name: punctuation.separator.placeholder-parts.erlang
876
- "10":
877
- name: punctuation.separator.placeholder-parts.erlang
878
- match: (~)((\-)?\d++|(\*))?((\.)(\d++|(\*)))?((\.)((\*)|.))?[~cfegswpWPBX#bx\+ni]
879
- - name: constant.other.placeholder.erlang
880
- captures:
881
- "1":
882
- name: punctuation.definition.placeholder.erlang
883
- "2":
884
- name: punctuation.separator.placeholder-parts.erlang
885
- match: (~)(\*)?(\d++)?[~du\-#fsacl]
886
- - name: invalid.illegal.string.erlang
887
- match: ~.?
888
- atom:
889
- patterns:
890
- - name: constant.other.symbol.quoted.single.erlang
891
- endCaptures:
892
- "1":
893
- name: punctuation.definition.symbol.end.erlang
894
- begin: (')
895
- beginCaptures:
896
- "1":
897
- name: punctuation.definition.symbol.begin.erlang
898
- end: (')
899
- patterns:
900
- - name: constant.other.symbol.escape.erlang
901
- captures:
902
- "1":
903
- name: punctuation.definition.escape.erlang
904
- "3":
905
- name: punctuation.definition.escape.erlang
906
- match: (\\)([bdefnrstv\\'"]|(\^)[@-_]|[0-7]{1,3})
907
- - name: invalid.illegal.atom.erlang
908
- match: \\\^?.?
909
- - name: constant.other.symbol.unquoted.erlang
910
- match: "[a-z][a-zA-Z\\d@_]*+"
911
- uuid: 58EA597D-5158-4BF7-9FB2-B05135D1E166
912
- patterns:
913
- - include: "#module-directive"
914
- - include: "#import-export-directive"
915
- - include: "#record-directive"
916
- - include: "#define-directive"
917
- - include: "#macro-directive"
918
- - include: "#directive"
919
- - include: "#function"
920
- - include: "#everything-else"
921
- keyEquivalent: ^~E
922
- 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