github-linguist 9.3.0 → 9.5.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.
- checksums.yaml +4 -4
- data/grammars/dart.inline.edgeql.json +1 -0
- data/grammars/go.inline.edgeql.json +1 -0
- data/grammars/inline.surrealql-js-literal.json +1 -0
- data/grammars/js.inline.edgeql.json +1 -0
- data/grammars/markdown.move.codeblock.json +1 -1
- data/grammars/markdown.surrealql.codeblock.json +1 -0
- data/grammars/markdown.vue.codeblock.json +1 -1
- data/grammars/markdown.wesl.codeblock.json +1 -0
- data/grammars/markdown.wgsl.codeblock.json +1 -0
- data/grammars/mdx.vue.codeblock.json +1 -1
- data/grammars/res.inline.edgeql.json +1 -0
- data/grammars/source.4dm.json +1 -1
- data/grammars/source.abl.json +1 -1
- data/grammars/source.agda.json +1 -1
- data/grammars/source.al.json +1 -1
- data/grammars/source.algol60.json +1 -0
- data/grammars/source.apex.json +1 -1
- data/grammars/source.astro.json +1 -1
- data/grammars/source.b.json +1 -0
- data/grammars/source.bicep.json +1 -1
- data/grammars/source.brs.json +1 -1
- data/grammars/source.bru.json +1 -1
- data/grammars/source.c++.json +1 -1
- data/grammars/source.c.json +1 -1
- data/grammars/source.c3.json +1 -1
- data/grammars/source.cadence.json +1 -1
- data/grammars/source.cj.json +1 -0
- data/grammars/source.clar.json +1 -1
- data/grammars/source.clean.json +1 -1
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cmakecache.json +1 -1
- data/grammars/source.comment-string.wesl.json +1 -0
- data/grammars/source.comment-string.wgsl.json +1 -0
- data/grammars/source.cpan-mirror.json +1 -0
- data/grammars/source.cpan-skiplist.json +1 -0
- data/grammars/source.cql.json +1 -0
- data/grammars/source.cs.json +1 -1
- data/grammars/source.csv.json +1 -0
- data/grammars/source.dart.json +1 -1
- data/grammars/source.data-weave.json +1 -1
- data/grammars/source.dsv.json +1 -0
- data/grammars/source.erlang.json +1 -1
- data/grammars/source.firrtl.json +1 -1
- data/grammars/source.flatbuffers.json +1 -0
- data/grammars/source.fsharp.json +1 -1
- data/grammars/source.gfm.blade.json +1 -1
- data/grammars/source.go-template.json +1 -0
- data/grammars/source.go.injection.double.go-template.json +1 -0
- data/grammars/source.go.injection.raw.go-template.json +1 -0
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hurl.json +1 -0
- data/grammars/source.ilecobol.json +1 -1
- data/grammars/source.isabelle.theory.json +1 -1
- data/grammars/source.jac.json +1 -0
- data/grammars/source.jai.json +1 -1
- data/grammars/source.julia.json +1 -1
- data/grammars/source.just.json +1 -1
- data/grammars/source.kcl.json +1 -0
- data/grammars/source.langium.json +1 -0
- data/grammars/source.lean.markdown.json +1 -1
- data/grammars/source.lean4.json +1 -1
- data/grammars/source.lean4.markdown.json +1 -1
- data/grammars/source.liquidsoap.json +1 -0
- data/grammars/source.llvm.json +1 -1
- data/grammars/source.lp.json +1 -0
- data/grammars/source.lua.json +1 -1
- data/grammars/source.luau.json +1 -1
- data/grammars/source.m2.json +1 -1
- data/grammars/source.mask.json +1 -1
- data/grammars/source.mc.json +1 -1
- data/grammars/source.mdx.json +1 -1
- data/grammars/source.mermaid.json +1 -1
- data/grammars/source.mermaid.zenuml.json +1 -1
- data/grammars/source.metta.json +1 -0
- data/grammars/source.mo.json +1 -1
- data/grammars/source.mojo.json +1 -1
- data/grammars/source.moonbit.json +1 -1
- data/grammars/source.move.json +1 -1
- data/grammars/source.ned.json +1 -1
- data/grammars/source.nr.json +1 -1
- data/grammars/source.nushell.json +1 -1
- data/grammars/source.proto.json +1 -1
- data/grammars/source.pyjade.json +1 -1
- data/grammars/source.quakec.json +1 -1
- data/grammars/source.rascal.json +1 -1
- data/grammars/source.rascript.json +1 -0
- data/grammars/source.rego.json +1 -1
- data/grammars/source.roc.json +1 -1
- data/grammars/source.ron.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.shell.json +1 -1
- data/grammars/source.singularity.json +1 -1
- data/grammars/source.slint.json +1 -1
- data/grammars/source.soql.json +1 -1
- data/grammars/source.sqf.json +1 -1
- data/grammars/source.stan.json +1 -1
- data/grammars/source.surrealql.json +1 -0
- data/grammars/source.swift.json +1 -1
- data/grammars/source.teal.json +1 -0
- data/grammars/source.tmdl.json +1 -0
- data/grammars/source.tsp.json +1 -1
- data/grammars/source.tsv.json +1 -0
- data/grammars/source.vb6.json +1 -0
- data/grammars/source.vba.json +1 -1
- data/grammars/source.vento.json +1 -1
- data/grammars/source.wdl.json +1 -1
- data/grammars/source.wgsl.json +1 -1
- data/grammars/source.wwb.json +1 -1
- data/grammars/text.git-commit.json +1 -0
- data/grammars/text.haml.json +1 -1
- data/grammars/text.html.markdown.d2.json +1 -1
- data/grammars/text.html.vue.json +1 -0
- data/grammars/text.injection.go-template.json +1 -0
- data/grammars/text.k.json +1 -0
- data/grammars/text.markdown.go-template.codeblock.json +1 -0
- data/grammars/text.marko.json +1 -1
- data/grammars/text.md.json +1 -1
- data/grammars/text.slim.json +1 -1
- data/grammars/text.source.mps.json +1 -0
- data/grammars/text.srt.json +1 -1
- data/grammars/text.valve-cfg.json +1 -1
- data/grammars/v.mod.json +1 -0
- data/grammars/version +1 -1
- data/grammars/vue.directives.json +1 -1
- data/grammars/vue.interpolations.json +1 -1
- data/grammars/vue.sfc.script.leading-operator-fix.json +1 -0
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/generated.rb +24 -0
- data/lib/linguist/generic.yml +1 -0
- data/lib/linguist/heuristics.yml +62 -6
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +256 -26
- data/lib/linguist/samples.json +1 -1
- data/lib/linguist/source/rugged.rb +16 -1
- metadata +44 -4
- data/grammars/inline.edgeql.json +0 -1
- data/grammars/source.vue.json +0 -1
- data/grammars/text.html.vento.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Comma-separated values","scopeName":"source.csv","patterns":[{"include":"#main"}],"repository":{"escape":{"name":"constant.character.escape.quote.csv","match":"\"\""},"header":{"begin":"\\A","end":"(?!\\G)","patterns":[{"begin":"\\G(?=\\s*$)","end":"\\s*(?=\\S)"},{"name":"meta.table.header.csv","begin":"(?=\\S)","end":"(?!\\G)","patterns":[{"name":"meta.table.field.csv","begin":"(?:^|\\G|(?\u003c=,))(\\s*)(?=[^\\s,])","end":"([ \\t\\f\\v]*)(?=,|$)","patterns":[{"name":"entity.name.column.quoted.csv","begin":"\\G\"","end":"\"","patterns":[{"include":"#escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.column.begin.csv"}},"endCaptures":{"0":{"name":"punctuation.definition.column.end.csv"}},"applyEndPatternLast":true},{"name":"entity.name.column.unquoted.csv","begin":"\\G(?=[^\\s,\"])","end":"(?=\\s*(?:,|$))"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.csv"}},"endCaptures":{"1":{"name":"punctuation.whitespace.trailing.csv"}}},{"include":"#separator"}],"applyEndPatternLast":true}],"applyEndPatternLast":true},"main":{"patterns":[{"include":"#header"},{"include":"#record"}]},"record":{"name":"meta.table.record.csv","begin":"^(?=.*?,)","end":"$","patterns":[{"name":"meta.table.field.csv","begin":"(?:^|\\G|(?\u003c=,))(\\s*)(?=[^\\s,])","end":"([ \\t\\f\\v]*)(?=,|$)","patterns":[{"name":"string.quoted.double.csv","begin":"\\G\"","end":"\"","patterns":[{"include":"#escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.csv"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.csv"}},"applyEndPatternLast":true},{"name":"string.unquoted.csv","begin":"\\G(?=[^\\s,\"])","end":"(?=\\s*(?:,|$))"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.csv"}},"endCaptures":{"1":{"name":"punctuation.whitespace.trailing.csv"}},"applyEndPatternLast":true},{"include":"#separator"}],"applyEndPatternLast":true},"separator":{"name":"keyword.operator.separator.csv","match":",","captures":{"0":{"name":"punctuation.separator.delimiter.comma.csv"}}}}}
|
data/grammars/source.dart.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Dart","scopeName":"source.dart","patterns":[{"name":"meta.preprocessor.script.dart","match":"^(#!.*)$"},{"name":"meta.declaration.dart","begin":"^\\w*\\b(augment\\s+library|library|import\\s+augment|import|part\\s+of|part|export)\\b","end":";","patterns":[{"include":"#strings"},{"include":"#comments"},{"name":"keyword.other.import.dart","match":"\\b(as|show|hide)\\b"},{"name":"keyword.control.dart","match":"\\b(if)\\b"}],"beginCaptures":{"0":{"name":"keyword.other.import.dart"}},"endCaptures":{"0":{"name":"punctuation.terminator.dart"}}},{"include":"#comments"},{"include":"#punctuation"},{"include":"#annotations"},{"include":"#keywords"},{"include":"#constants-and-special-vars"},{"include":"#operators"},{"include":"#strings"}],"repository":{"annotations":{"patterns":[{"name":"storage.type.annotation.dart","match":"@[a-zA-Z]+"}]},"class-identifier":{"patterns":[{"name":"support.class.dart","match":"(?\u003c!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)"},{"name":"storage.type.primitive.dart","match":"(?\u003c!\\$)\\bvoid\\b(?!\\$)"},{"begin":"(?\u003c![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b","end":"(?!\u003c)","patterns":[{"include":"#type-args"}],"beginCaptures":{"1":{"name":"support.class.dart"}}}]},"comments":{"patterns":[{"name":"comment.block.empty.dart","match":"/\\*\\*/","captures":{"0":{"name":"punctuation.definition.comment.dart"}}},{"include":"#comments-doc-oldschool"},{"include":"#comments-doc"},{"include":"#comments-inline"}]},"comments-block":{"patterns":[{"name":"comment.block.dart","begin":"/\\*","end":"\\*/","patterns":[{"include":"#comments-block"}]}]},"comments-doc":{"patterns":[{"name":"comment.block.documentation.dart","begin":"///","end":"^(?!\\s*///)","patterns":[{"include":"#dartdoc"}]}]},"comments-doc-oldschool":{"patterns":[{"name":"comment.block.documentation.dart","begin":"/\\*\\*","end":"\\*/","patterns":[{"include":"#comments-doc-oldschool"},{"include":"#comments-block"},{"include":"#dartdoc"}]}]},"comments-inline":{"patterns":[{"include":"#comments-block"},{"match":"((//).*)$","captures":{"1":{"name":"comment.line.double-slash.dart"}}}]},"constants-and-special-vars":{"patterns":[{"name":"constant.language.dart","match":"(?\u003c!\\$)\\b(true|false|null)\\b(?!\\$)"},{"name":"variable.language.dart","match":"(?\u003c!\\$)\\b(this|super|augmented)\\b(?!\\$)"},{"name":"constant.numeric.dart","match":"(?\u003c!\\$)\\b((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(([0-9][0-9_]*\\.?[0-9_]*)|(\\.[0-9][0-9_]*))((e|E)(\\+|-)?[0-9][0-9_]*)?)\\b(?!\\$)"}
|
|
1
|
+
{"name":"Dart","scopeName":"source.dart","patterns":[{"name":"meta.preprocessor.script.dart","match":"^(#!.*)$"},{"name":"meta.declaration.dart","begin":"^\\w*\\b(augment\\s+library|library|import\\s+augment|import|part\\s+of|part|export)\\b","end":";","patterns":[{"include":"#strings"},{"include":"#comments"},{"name":"keyword.other.import.dart","match":"\\b(as|show|hide)\\b"},{"name":"keyword.control.dart","match":"\\b(if)\\b"}],"beginCaptures":{"0":{"name":"keyword.other.import.dart"}},"endCaptures":{"0":{"name":"punctuation.terminator.dart"}}},{"include":"#comments"},{"include":"#punctuation"},{"include":"#annotations"},{"include":"#keywords"},{"include":"#constants-and-special-vars"},{"include":"#class-identifier-with-optional-factory-method"},{"include":"#function-identifier"},{"include":"#operators"},{"include":"#strings"}],"repository":{"annotations":{"patterns":[{"name":"storage.type.annotation.dart","match":"@[a-zA-Z]+"}]},"class-identifier":{"patterns":[{"name":"support.class.dart","match":"(?\u003c!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)"},{"name":"storage.type.primitive.dart","match":"(?\u003c!\\$)\\bvoid\\b(?!\\$)"},{"begin":"(?\u003c![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b","end":"(?!\u003c)","patterns":[{"include":"#type-args"}],"beginCaptures":{"1":{"name":"support.class.dart"}}}]},"class-identifier-with-optional-factory-method":{"patterns":[{"match":"(?\u003c!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)\\s*(factory\\b)?","captures":{"1":{"name":"support.class.dart"},"2":{"name":"entity.name.function.dart"}}},{"match":"(?\u003c!\\$)\\b(void)\\b(?!\\$)\\s*(factory\\b)?","captures":{"1":{"name":"storage.type.primitive.dart"},"2":{"name":"entity.name.function.dart"}}},{"begin":"(?\u003c![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b\\s*(factory\\b)?","end":"(?!\u003c)","patterns":[{"include":"#type-args"}],"beginCaptures":{"1":{"name":"support.class.dart"},"2":{"name":"entity.name.function.dart"}}}]},"comments":{"patterns":[{"name":"comment.block.empty.dart","match":"/\\*\\*/","captures":{"0":{"name":"punctuation.definition.comment.dart"}}},{"include":"#comments-doc-oldschool"},{"include":"#comments-doc"},{"include":"#comments-inline"}]},"comments-block":{"patterns":[{"name":"comment.block.dart","begin":"/\\*","end":"\\*/","patterns":[{"include":"#comments-block"}]}]},"comments-doc":{"patterns":[{"name":"comment.block.documentation.dart","begin":"///","end":"^(?!\\s*///)","patterns":[{"include":"#dartdoc"}]}]},"comments-doc-oldschool":{"patterns":[{"name":"comment.block.documentation.dart","begin":"/\\*\\*","end":"\\*/","patterns":[{"include":"#comments-doc-oldschool"},{"include":"#comments-block"},{"include":"#dartdoc"}]}]},"comments-inline":{"patterns":[{"include":"#comments-block"},{"match":"((//).*)$","captures":{"1":{"name":"comment.line.double-slash.dart"}}}]},"constants-and-special-vars":{"patterns":[{"name":"constant.language.dart","match":"(?\u003c!\\$)\\b(true|false|null)\\b(?!\\$)"},{"name":"variable.language.dart","match":"(?\u003c!\\$)\\b(this|super|augmented)\\b(?!\\$)"},{"name":"constant.numeric.dart","match":"(?\u003c!\\$)\\b((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(([0-9][0-9_]*\\.?[0-9_]*)|(\\.[0-9][0-9_]*))((e|E)(\\+|-)?[0-9][0-9_]*)?)\\b(?!\\$)"}]},"dartdoc":{"patterns":[{"match":"(\\[.*?\\])","captures":{"0":{"name":"variable.name.source.dart"}}},{"begin":"^\\s*///\\s*(```)","end":"^\\s*///\\s*(```)|^(?!\\s*///)","patterns":[{"include":"#dartdoc-codeblock-triple"}]},{"begin":"^\\s*\\*\\s*(```)","end":"^\\s*\\*\\s*(```)|^(?=\\s*\\*/)","patterns":[{"include":"#dartdoc-codeblock-block"}]},{"name":"variable.other.source.dart","match":"`[^`\n]+`"},{"match":"(?:\\*|\\/\\/)\\s{4,}(.*?)(?=($|\\*\\/))","captures":{"1":{"name":"variable.other.source.dart"}}}]},"dartdoc-codeblock-block":{"contentName":"variable.other.source.dart","begin":"^\\s*\\*\\s*(?!(\\s*```|/))","end":"\n"},"dartdoc-codeblock-triple":{"contentName":"variable.other.source.dart","begin":"^\\s*///\\s*(?!\\s*```)","end":"\n"},"expression":{"patterns":[{"include":"#constants-and-special-vars"},{"include":"#class-identifier-with-optional-factory-method"},{"include":"#function-identifier"},{"include":"#strings"},{"name":"variable.parameter.dart","match":"[a-zA-Z0-9_]+"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#expression"}]}]},"function-identifier":{"patterns":[{"match":"([_$]*[a-z][a-zA-Z0-9_$]*)(\u003c(?:[a-zA-Z0-9_$\u003c\u003e?]|,\\s*|\\s+extends\\s+)+\u003e)?[!?]?\\(","captures":{"1":{"name":"entity.name.function.dart"},"2":{"patterns":[{"include":"#type-args"}]}}},{"name":"entity.name.function.dart","match":"(?\u003c=\\.)new\\b"}]},"keywords":{"patterns":[{"name":"keyword.cast.dart","match":"(?\u003c!\\$)\\bas\\b(?!\\$)"},{"name":"keyword.control.catch-exception.dart","match":"(?\u003c!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)"},{"name":"keyword.control.dart","match":"(?\u003c!\\$)\\b(break|case|continue|default|do|else|for|if|in|switch|while|when)\\b(?!\\$)"},{"name":"keyword.control.dart","match":"(?\u003c!\\$)\\b(sync(\\*)?|async(\\*)?|await|yield(\\*)?)\\b(?!\\$)"},{"name":"keyword.control.dart","match":"(?\u003c!\\$)\\bassert\\b(?!\\$)"},{"name":"keyword.new.dart","match":"(?\u003c![\\$\\.])\\b(new)\\b(?!\\$)"},{"name":"keyword.control.return.dart","match":"(?\u003c!\\$)\\b(return)\\b(?!\\$)"},{"name":"keyword.declaration.dart","match":"(?\u003c!\\$)\\b(abstract|sealed|base|interface|class|enum|extends|extension\\s+type|extension|external|factory|implements|get(?![(\u003c])|mixin|native|operator|set(?![(\u003c])|typedef|with|covariant)\\b(?!\\$)"},{"name":"storage.modifier.dart","match":"(?\u003c!\\$)\\b(macro|augment|static|final|const|required|late)\\b(?!\\$)"},{"name":"storage.type.primitive.dart","match":"(?\u003c!\\$)\\b(?:var)\\b(?!\\$)"}]},"operators":{"patterns":[{"name":"keyword.operator.dart","match":"(?\u003c!\\$)\\b(is\\!?)\\b(?!\\$)"},{"name":"keyword.operator.ternary.dart","match":"\\?|:"},{"name":"keyword.operator.bitwise.dart","match":"(\u003c\u003c|\u003e\u003e\u003e?|~|\\^|\\||\u0026)"},{"name":"keyword.operator.assignment.bitwise.dart","match":"((\u0026|\\^|\\||\u003c\u003c|\u003e\u003e\u003e?)=)"},{"name":"keyword.operator.closure.dart","match":"(=\u003e)"},{"name":"keyword.operator.comparison.dart","match":"(==|!=|\u003c=?|\u003e=?)"},{"name":"keyword.operator.assignment.arithmetic.dart","match":"(([+*/%-]|\\~)=)"},{"name":"keyword.operator.assignment.dart","match":"(=)"},{"name":"keyword.operator.increment-decrement.dart","match":"(\\-\\-|\\+\\+)"},{"name":"keyword.operator.arithmetic.dart","match":"(\\-|\\+|\\*|\\/|\\~\\/|%)"},{"name":"keyword.operator.logical.dart","match":"(!|\u0026\u0026|\\|\\|)"}]},"punctuation":{"patterns":[{"name":"punctuation.comma.dart","match":","},{"name":"punctuation.terminator.dart","match":";"},{"name":"punctuation.dot.dart","match":"\\."}]},"string-interp":{"patterns":[{"name":"meta.embedded.expression.dart","match":"\\$([a-zA-Z0-9_]+)","captures":{"1":{"name":"variable.parameter.dart"}}},{"name":"meta.embedded.expression.dart","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}]},{"name":"constant.character.escape.dart","match":"\\\\."}]},"strings":{"patterns":[{"name":"string.interpolated.triple.double.dart","begin":"(?\u003c!r)\"\"\"","end":"\"\"\"(?!\")","patterns":[{"include":"#string-interp"}]},{"name":"string.interpolated.triple.single.dart","begin":"(?\u003c!r)'''","end":"'''(?!')","patterns":[{"include":"#string-interp"}]},{"name":"string.quoted.triple.double.dart","begin":"r\"\"\"","end":"\"\"\"(?!\")"},{"name":"string.quoted.triple.single.dart","begin":"r'''","end":"'''(?!')"},{"name":"string.interpolated.double.dart","begin":"(?\u003c!\\|r)\"","end":"\"","patterns":[{"name":"invalid.string.newline","match":"\\n"},{"include":"#string-interp"}]},{"name":"string.quoted.double.dart","begin":"r\"","end":"\"","patterns":[{"name":"invalid.string.newline","match":"\\n"}]},{"name":"string.interpolated.single.dart","begin":"(?\u003c!\\|r)'","end":"'","patterns":[{"name":"invalid.string.newline","match":"\\n"},{"include":"#string-interp"}]},{"name":"string.quoted.single.dart","begin":"r'","end":"'","patterns":[{"name":"invalid.string.newline","match":"\\n"}]}]},"type-args":{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"#class-identifier"},{"match":","},{"name":"keyword.declaration.dart","match":"extends"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"other.source.dart"}},"endCaptures":{"1":{"name":"other.source.dart"}}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"DataWeave","scopeName":"source.data-weave","patterns":[{"include":"#comments"},{"include":"#directives"},{"name":"keyword.operator.body-marker.dw","match":"(---)"},{"include":"#expressions"},{"name":"invalid","match":"([^\\s]+)"}],"repository":{"annotation-directive":{"name":"meta.directive.annot.dw","begin":"(\\s*(annotation)\\s+([a-zA-Z][a-zA-Z0-9]*))","end":"(?=\\n)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}]}],"beginCaptures":{"2":{"name":"storage.type.annotation.dw"},"3":{"name":"entity.name.function.dw"}},"endCaptures":{"0":{"name":"keyword.operator.assignment.dw"}}},"annotation-usage":{"name":"meta.annot.usage.dw","begin":"(\\s*(\\@)([a-zA-Z][a-zA-Z0-9]*))","end":"(?=\\n)","patterns":[{"begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}]}],"beginCaptures":{"2":{"name":"storage.type.annotation.dw"},"3":{"name":"entity.name.function.dw"}},"endCaptures":{"0":{"name":"keyword.operator.assignment.dw"}}},"array-literal":{"name":"meta.array.literal.dw","begin":"(?\u003c!\\w|}|])(\\[)","end":"\\]","patterns":[{"include":"#expressions"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"meta.brace.square.dw"}},"endCaptures":{"0":{"name":"meta.brace.square.dw"}}},"attr-literal":{"name":"meta.attributes.dw","begin":"\\@\\(","end":"\\)","patterns":[{"include":"#object-member"}],"beginCaptures":{"0":{"name":"keyword.operator.attributes.dw"}},"endCaptures":{"0":{"name":"keyword.operator.attributes.dw"}}},"case-clause":{"name":"case-clause.expr.dw","begin":"(?\u003c!\\.|\\$)\\b(case|else(?=\\s*-\u003e))\\b(?!\\$|\\.)","end":"\\-\\\u003e","patterns":[{"begin":"(?\u003c!\\.|\\$)\\b(is)\\s+","end":"(?=\\-\\\u003e)","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.control.is.dw"}}},{"begin":"(?\u003c!\\.|\\$)\\b(matches)\\b","end":"(?=\\-\\\u003e)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"keyword.control.matches.dw"}}},{"begin":"(?\u003c!\\.|\\$)\\b([A-Za-z][a-zA-Z0-9_]*)\\s*:\\s+","end":"(?=\\-\\\u003e)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"entity.name.variable.dw"}}},{"begin":"(?\u003c!\\.|\\$)\\b([A-Za-z][a-zA-Z0-9_]*)\\s*(if|matches)\\s+","end":"(?=\\-\\\u003e)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"entity.name.variable.dw"},"2":{"name":"keyword.control.if.dw"}}},{"include":"#expressions"}],"beginCaptures":{"1":{"name":"keyword.control.switch.dw"}},"endCaptures":{"0":{"name":"keyword.control.switch.dw"}}},"cast":{"begin":"(?\u003c!\\.|\\$)\\b(as|is)\\s+","end":"(?=$|^|[;,:})\\]\\s])","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.control.as.dw"}}},"comments":{"patterns":[{"name":"comment.block.dw","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.dw"}}},{"match":"\\s*((//).*$\\n?)","captures":{"1":{"name":"comment.line.double-slash.dw"},"2":{"name":"punctuation.definition.comment.dw"}}}]},"constants":{"patterns":[{"name":"constant.language.dw","match":"\\b(true|false|null)\\b"},{"name":"constant.numeric.dw","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"},{"begin":"\\|","end":"\\|","patterns":[{"name":"constant.numeric.dw","match":"([0-9]+)"},{"name":"constant.character.escape.dw","match":"([+:\\-WYMDTHSPZ\\.])"},{"name":"invalid","match":"([^\\|])"}],"beginCaptures":{"0":{"name":"constant.numeric.dw"}},"endCaptures":{"0":{"name":"constant.numeric.dw"}}}]},"directives":{"patterns":[{"include":"#dw-directive"},{"include":"#import-directive"},{"include":"#type-directive"},{"include":"#fun-directive"},{"include":"#var-directive"},{"include":"#ns-directive"},{"include":"#input-directive"},{"include":"#output-directive"},{"include":"#annotation-usage"},{"include":"#annotation-directive"}]},"do-statement":{"name":"do-statement.expr.dw","begin":"(?\u003c!\\.|\\$)\\b(do)\\s*(\\{)","end":"(\\})","patterns":[{"include":"#comments"},{"include":"#directives"},{"name":"keyword.operator.body-marker.dw","match":"(---)"},{"include":"#expressions"},{"name":"invalid","match":"([^\\s]+)"}],"beginCaptures":{"1":{"name":"keyword.control.do.dw"},"2":{"name":"punctuation.definitions.begin.dw"}},"endCaptures":{"1":{"name":"punctuation.definitions.end.dw"}}},"dw-directive":{"name":"meta.directive.version.dw","begin":"(?\u003c!\\.|\\$)(%dw)\\s+([0-9]\\.[0-9])(?!\\$|\\.)","end":"(?=\\n)","beginCaptures":{"1":{"name":"comment.dw"},"2":{"name":"comment.dw"}}},"expressions":{"name":"expression","patterns":[{"name":"keyword.other.dw","match":"\\b(not)\\s+"},{"include":"#undefined-fun-character"},{"include":"#paren-expression"},{"include":"#strings"},{"include":"#constants"},{"include":"#comments"},{"include":"#match-statement"},{"include":"#using-statement"},{"include":"#do-statement"},{"include":"#if-statement"},{"include":"#regex"},{"include":"#type_parameters"},{"include":"#keywords"},{"include":"#object-literal"},{"include":"#array-literal"},{"include":"#cast"},{"include":"#object-member"},{"include":"#variable-reference"},{"include":"#selectors"},{"include":"#directives"},{"include":"#infix"}]},"fun-directive":{"name":"meta.directive.fun.dw","begin":"(\\s*(fun)\\s+([a-zA-Z][a-zA-Z0-9_]*|--|\\+\\+))","end":"(=)","patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#generics"}]},{"begin":"\\(","end":"\\)","patterns":[{"include":"#parameters"}]},{"begin":"(:)","end":"(?==)","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.operator.declaration.dw"}}}],"beginCaptures":{"2":{"name":"storage.type.dw"},"3":{"name":"entity.name.function.dw"}},"endCaptures":{"0":{"name":"keyword.operator.assignment.dw"}}},"generics":{"patterns":[{"begin":"(:)","end":"(?=,|\u003e)","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.operator.declaration.dw"}}},{"name":"keyword.operator.extends.dw","match":"\u003c:"},{"include":"#keywords"},{"name":"entity.name.type.parameter.dw","match":"\\w+"}]},"if-statement":{"name":"meta.if.dw","begin":"(?\u003c!\\.|\\$)\\b(if\\s*)\\(","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"keyword.control.if.dw"}}},"import-directive":{"name":"meta.directive.import.dw","begin":"(\\s*(import)\\s+)","end":"(?=(fun|input|output|type|var|ns|import|%dw|private|annotation|\\@|---)\\s|$)","patterns":[{"include":"#comments"},{"match":"(,)"},{"name":"entity.name.type.dw","match":"(\\*)"},{"match":"\\s+(from)\\s+","captures":{"1":{"name":"keyword.control.from"}}},{"name":"entity.name.type.dw","match":"(?:[a-zA-Z][a-zA-Z0-9]*(?:::[a-zA-Z][a-zA-Z0-9]*)+)\n"},{"name":"entity.name.function.dw","match":"(?:[a-zA-Z][a-zA-Z0-9]*)\n"},{"match":"\\s+(as)\\s+([a-zA-Z][a-zA-Z0-9]*)","captures":{"1":{"name":"keyword.control.as"},"2":{"name":"entity.name.function.dw"}}}],"beginCaptures":{"2":{"name":"keyword.control.import"}}},"infix":{"name":"support.function.dw","match":"(?\u003c!^|,|\\[|\\(|=|\\+|\u003e|\u003c|\\-|\\*|:|\\{|case|is|else|not|as|and|or)(?\u003c=[a-zA-Z0-9_$\\}\\])\"'`|/])\\s*(?!(var|match|case|else|fun|input|output|is|as|default|ns|import|null|false|true|using|do|not|and|or)\\s)(\\+\\+|\\-\\-|[a-zA-Z][a-zA-Z_0-9]*)(\\s+|\\s*(?=[\"'/|{]))"},"input-directive":{"name":"meta.directive.ns.dw","begin":"(?\u003c!\\.|\\$)\\b(input)\\s+([[:alpha:]][[:alnum:]]*)\\s*","end":"(?=\\n)","patterns":[{"begin":"(\\:\\s*)","end":"(\\s|\\n)","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.other.dw"}}},{"name":"string.mime.dw","match":"([^{\\n\\s])"}],"beginCaptures":{"1":{"name":"storage.type.dw"},"2":{"name":"entity.name.variable.dw"}}},"keywords":{"patterns":[{"name":"keyword.reserved.dw","match":"\\b(throw|for|yield|enum|private|async)\\b"},{"name":"invalid","match":"\\b(not)\\b"},{"name":"keyword.control.dw","match":"\\b(if|else|while|for|do|using|unless|default)\\b"},{"name":"keyword.operator.comparison.dw","match":"(~=|==|!=|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"name":"keyword.operator.assignment.dw","match":"(=)"},{"name":"keyword.operator.declaration.dw","match":"(:)"},{"name":"keyword.operator.arithmetic.dw","match":"(\\-|\\+|\\*|\\/)"},{"name":"keyword.other.dw","match":"\\b(and|or)\\b"}]},"match-block":{"name":"match-block.expr.dw","begin":"\\{","end":"(?=\\})","patterns":[{"include":"#case-clause"},{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.dw"}}},"match-statement":{"name":"match-statement.expr.dw","begin":"(?\u003c!\\.|\\$)\\b(match)\\s*(?=\\{)","end":"\\}","patterns":[{"include":"#match-block"}],"beginCaptures":{"1":{"name":"keyword.control.switch.dw"}},"endCaptures":{"1":{"name":"punctuation.definition.block.dw"}}},"ns-directive":{"name":"meta.directive.ns.dw","begin":"(?\u003c!\\.|\\$)\\b(ns)\\s+([A-Za-z][a-zA-Z0-9_]*)\\s+([^\\n]*)(?!\\$|\\.)","end":"(?=\\n)","beginCaptures":{"1":{"name":"storage.type.dw"},"2":{"name":"entity.name.namespace.dw"},"3":{"name":"meta.definition.ns.dw string.url.dw"}}},"object-key":{"patterns":[{"name":"variable.object.member.dw meta.object-literal.namespace.dw","match":"\\b([[:alpha:]][_[:alnum:]]+#)","captures":{"0":{"name":"variable.language.dw"}}},{"name":"variable.object.member.dw meta.object-literal.key.dw","begin":"(?=[\\'\\\"\\`])","end":"(?=@\\(|:)","patterns":[{"include":"#strings"}]},{"name":"variable.object.member.dw","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:|@\\()","end":"(?=,|\\}|\\))","captures":{"1":{"name":"meta.object-literal.key.dw"}}}]},"object-literal":{"name":"meta.objectliteral.dw","begin":"\\{","end":"\\}","patterns":[{"include":"#object-member"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.dw"}},"endCaptures":{"0":{"name":"punctuation.definition.block.dw"}}},"object-member":{"name":"meta.object.member.first.dw","patterns":[{"include":"#comments"},{"include":"#paren-expression"},{"include":"#object-key"},{"include":"#attr-literal"},{"include":"#object-member-body"},{"include":"#punctuation-comma"}]},"object-member-body":{"name":"variable.object.member.dw","begin":":","end":"(?=,|\\}|\\))","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"meta.object-literal.key.dw punctuation.separator.key-value.dw"}}},"object-member-type":{"patterns":[{"include":"#comments"},{"name":"variable.language.dw","match":"_"},{"name":"variable.language.dw","match":"([a-zA-Z0-9]+#)"},{"name":"entity.name.type.dw","match":"\\(\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*\\)"},{"name":"variable.object.member.dw","match":"([a-zA-Z][a-zA-Z0-9]*)"},{"include":"#strings"},{"name":"keyword.operator.optional.dw","match":"\\?"},{"name":"keyword.operator.optional.dw","match":"\\*"},{"begin":"(\\@\\()","end":"(\\))","patterns":[{"include":"#punctuation-comma"},{"include":"#object-member-type"}],"beginCaptures":{"1":{"name":"keyword.operator.attributes.dw"}},"endCaptures":{"1":{"name":"keyword.operator.attributes.dw"}}},{"begin":"(:)","end":"(?=,|}|\\)|\\|}|\\-}|\\|\\-})","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.operator.declaration.dw"}}},{"name":"invalid","match":"([^\\s])"}]},"output-directive":{"name":"meta.directive.ns.dw","begin":"(?\u003c!\\.|\\$)\\b(output)\\s+([^\\n{\\s]*)(?!\\$|\\.)","end":"(?=\\n)","beginCaptures":{"1":{"name":"storage.type.dw"},"2":{"name":"string.other.dw"}}},"parameters":{"patterns":[{"begin":"(:)","end":"(?=,|\\)|=)","patterns":[{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.operator.declaration.dw"}}},{"begin":"(=)","end":"(?=,|\\))","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"keyword.operator.declaration.dw"}}},{"name":"variable.parameter.dw","match":"\\w+"}]},"paren-expression":{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"punctuation.expression.begin.dw"}},"endCaptures":{"1":{"name":"punctuation.expression.end.dw"}}},"punctuation-comma":{"name":"punctuation.separator.comma.dw","match":","},"qstring-backtick":{"begin":"`","end":"`","patterns":[{"include":"#template-substitution-element"},{"include":"#template-dollar"},{"include":"#string-character-escape"},{"name":"string.template.dw","match":"([^`])"}],"beginCaptures":{"0":{"name":"string.quoted.double.dw punctuation.definition.string.begin.dw"}},"endCaptures":{"0":{"name":"string.quoted.double.dw punctuation.definition.string.end.dw"}}},"qstring-double":{"begin":"\"","end":"\"","patterns":[{"include":"#template-substitution-element"},{"include":"#template-dollar"},{"include":"#string-character-escape"},{"name":"string.quoted.double.dw","match":"([^\"])"}],"beginCaptures":{"0":{"name":"string.quoted.double.dw punctuation.definition.string.begin.dw"}},"endCaptures":{"0":{"name":"string.quoted.double.dw punctuation.definition.string.end.dw"}}},"qstring-single":{"begin":"'","end":"(\\')|((?:[^\\\\\\n])$)","patterns":[{"include":"#template-substitution-element"},{"include":"#template-dollar"},{"include":"#string-character-escape"},{"name":"string.quoted.single.dw","match":"([^'])"}],"beginCaptures":{"0":{"name":"string.quoted.single.dw punctuation.definition.string.begin.dw"}},"endCaptures":{"1":{"name":"string.quoted.single.dw punctuation.definition.string.end.dw"},"2":{"name":"invalid.illegal.newline.dw"}}},"regex":{"patterns":[{"name":"string.regexp.dw","begin":"(?\u003c=[=(:,\\[?+!]|replace|match|scan|matches|contains|---|case|-\u003e|and|or|\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])(?!\\s*[a-zA-Z0-9_$]))","end":"(/)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.dw"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.dw"}}},{"name":"string.regexp.dw","begin":"(?\u003c![_$[:alnum:])])\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])(?!\\s*[a-zA-Z0-9_$]))","end":"(/)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dw"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.dw"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"name":"keyword.other.back-reference.regexp","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((\\?:)?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.capture.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"selectors":{"name":"meta.selector.data-weave","begin":"(?\u003c![\\[\\(:+*/\\-])(\\s*\\.\\.\\*|\\s*\\.\\.|\\s*\\.\\*|\\s*\\.\\@|\\s*\\.#|\\s*\\.\u0026|\\s*\\.|(?=\\[)|\\:\\:)","end":"(?=\\s|,|\\}|\\)|\\n|\\]|\\(|-|$)","patterns":[{"name":"variable.object.member.dw","match":"\\b([[:alpha:]][_[:alnum:]]+#)","captures":{"0":{"name":"variable.language.dw"}}},{"name":"variable.object.member.dw","match":"((?:[A-Za-z])([a-zA-Z0-9_]*)[?!]?|(\\$)+)"},{"include":"#strings"},{"begin":"(\\[(@|\\^)?)","end":"(\\])","patterns":[{"include":"#expressions"},{"name":"invalid","match":"([\\)])"}]},{"include":"#selectors"}]},"string-character-escape":{"name":"constant.character.escape.dw","match":"\\\\(u[[:xdigit:]]{4}|$|.)"},"strings":{"patterns":[{"include":"#qstring-single"},{"include":"#qstring-double"},{"include":"#qstring-backtick"},{"include":"#template"}]},"template":{"begin":"([$[:alpha:]][_$[:alnum:]]*)\\s*(`)","end":"`","patterns":[{"include":"#template-substitution-element"},{"include":"#template-dollar"},{"include":"#string-character-escape"},{"name":"string.template.dw","match":"([^`])"}],"beginCaptures":{"1":{"name":"support.function.dw"},"2":{"name":"string.template.dw punctuation.definition.string.template.begin.dw"}},"endCaptures":{"0":{"name":"string.template.dw punctuation.definition.string.template.end.dw"}}},"template-dollar":{"patterns":[{"name":"variable.parameter.dw","match":"(\\$(\\$)+)"},{"name":"variable.parameter.dw","match":"(\\$)(?![a-zA-Z(])"},{"name":"variable.parameter.dw","match":"(\\$)([a-zA-Z][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.other.dw"},"2":{"name":"variable.other.dw"}}}]},"template-substitution-element":{"name":"meta.template.expression.dw","begin":"\\$\\(","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"keyword.other.dw"}},"endCaptures":{"0":{"name":"keyword.other.dw"}}},"type-directive":{"name":"meta.directive.type.dw","begin":"(\\s*(type)\\s+([a-zA-Z][a-zA-Z0-9]*))","end":"(?=(fun|input|output|type|var|ns|import|%dw|private|---)\\s|(\\@[a-zA-Z][a-zA-Z0-9]*))","patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#generics"}]},{"name":"keyword.other.dw","match":"\\="},{"include":"#types"}],"beginCaptures":{"2":{"name":"storage.type.dw"},"3":{"name":"entity.name.type.dw"}}},"type_parameters":{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#types"},{"include":"#punctuation-comma"},{"include":"#comments"}]},"types":{"patterns":[{"include":"#comments"},{"name":"constant.language.dw","match":"\\b(true|false|null)\\b"},{"name":"constant.numeric.dw","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"},{"include":"#strings"},{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#types"},{"include":"#punctuation-comma"},{"include":"#comments"}]},{"begin":"\\{\\-\\|","end":"\\|\\-\\}","patterns":[{"include":"#punctuation-comma"},{"include":"#object-member-type"}]},{"begin":"\\{\\|","end":"\\|\\}","patterns":[{"include":"#punctuation-comma"},{"include":"#object-member-type"}]},{"begin":"\\{\\-","end":"\\-\\}","patterns":[{"include":"#punctuation-comma"},{"include":"#object-member-type"}]},{"begin":"\\{","end":"\\}","patterns":[{"include":"#punctuation-comma"},{"include":"#object-member-type"}]},{"begin":"(\\()","end":"(\\)\\s*-\u003e|\\))","patterns":[{"include":"#types"},{"include":"#parameters"}],"beginCaptures":{"0":{"name":"keyword.operator.grouping.dw"}},"endCaptures":{"0":{"name":"keyword.operator.grouping.dw"}}},{"name":"support.class.dw","match":"(String|Boolean|Number|Range|Namespace|Uri|DateTime|LocalDateTime|Date|LocalTime|TimeZone|Time|Period|Binary|Null|Regex|Nothing|Any|Object|Key)"},{"begin":"(Array|Type)\\s*\u003c","end":"\u003e","patterns":[{"name":"invalid","match":","},{"include":"#types"}],"beginCaptures":{"1":{"name":"support.type.dw"}}},{"name":"keyword.operator.declaration.dw","match":"(\u0026|\\|)"},{"name":"keyword.operator.declaration.dw","match":"\u003c:"},{"name":"support.class.dw","match":"\\b([A-Z][a-zA-Z0-9_]*)"},{"include":"#undefined-fun-character"},{"match":"\\b(var|fun|ns)\\b"},{"name":"invalid","match":"\\b(input|output|var|ns|import|try|catch|throw|do|for|yield|enum|private|async)\\b"},{"name":"invalid","match":"\\b(if|else|while|for|do|using|unless|default|match)\\b"},{"name":"invalid","match":"(~=|==|!=|===|!==|\u003c=|\u003e=|\u003c|\u003e|\\$+)"}]},"undefined-fun-character":{"name":"constant.language.undefined.dw","match":"\\?\\?\\?"},"using-statement":{"name":"using-statement.expr.dw","begin":"(?\u003c!\\.|\\$)\\b(using)\\s*(\\()","end":"(\\))","patterns":[{"match":"((?:\\+\\+|\\-\\-|[A-Za-z])(?:[a-zA-Z0-9_]*))(\\s*=)","captures":{"1":{"name":"entity.name.variable.dw"},"2":{"name":"keyword.operator.dw"}}},{"include":"#expressions"}],"beginCaptures":{"1":{"name":"keyword.control.using.dw"},"2":{"name":"punctuation.definitions.begin.dw"}},"endCaptures":{"1":{"name":"punctuation.definitions.end.dw"}}},"var-directive":{"name":"meta.directive.var.dw","begin":"(\\s*(var)\\s+([a-zA-Z][a-zA-Z0-9]*))","end":"(=)","patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#generics"}]},{"begin":"(:)","end":"(?==|$)","patterns":[{"include":"#comments"},{"include":"#types"}],"beginCaptures":{"1":{"name":"keyword.operator.declaration.dw"}}}],"beginCaptures":{"2":{"name":"storage.type.dw"},"3":{"name":"entity.name.variable.dw"}},"endCaptures":{"0":{"name":"keyword.operator.assignment.dw"}}},"variable-reference":{"patterns":[{"name":"variable.other.dw","match":"\\b(?!(fun|input|output|type|var|ns|import|%dw|private|---)\\b)((\\+\\+|\\-\\-|[A-Za-z])[a-zA-Z0-9_]*)"},{"name":"invalid","match":"\\b(fun|input|output|type|var|ns|import|private)\\b"},{"name":"variable.parameter.dw","match":"(\\$+)"}]}}}
|
|
1
|
+
{"name":"DataWeave","scopeName":"source.data-weave","patterns":[{"include":"#namespace"},{"include":"#comment"},{"include":"#document"},{"include":"#constant"},{"include":"#keyword"},{"include":"#directive"},{"include":"#identifier"},{"include":"#selector"}],"repository":{"comment":{"patterns":[{"name":"comment.block.dw","begin":"/\\*","end":"\\*/"},{"match":"\\s*((//).*$\\n?)","captures":{"1":{"name":"comment.line.double-slash.dw"},"2":{"name":"punctuation.definition.comment.dw"}}}]},"constant":{"patterns":[{"include":"#regex"},{"include":"#string-constants"},{"include":"#number-constants"},{"name":"constant.language.dw","match":"(?\u003c![[:alnum:]])(?:true|false|null)(?![[:alnum:]_])"}]},"directive":{"patterns":[{"name":"meta.directive.version.dw","begin":"(%dw)\\s+([0-9]+\\.[0-9]+)(?!\\$|\\.)","end":"(?=\\n)","beginCaptures":{"1":{"name":"keyword.directive.version.dw"},"2":{"name":"constant.numeric.version.dw"}}},{"name":"storage.type.dw","match":"(?\u003c![[:alnum:]_])(?:import|fun|ns|input|var|type|annotation|output|from)(?![[:alnum:]_])"}]},"document":{"patterns":[{"name":"keyword.operator.body-marker.dw","match":"(---)"}]},"identifier":{"patterns":[{"name":"entity.name.variable.dw","match":"[[:alpha:]][[:alnum:]_]*"}]},"keyword":{"patterns":[{"name":"keyword.control.dw","match":"(?\u003c![[:alnum:]])(?:if|else|unless|do|using|default|match|case|update)(?![[:alnum:]_])"},{"name":"keyword.operator.dw","match":"(?\u003c![[:alnum:]_])(?:and|or|not|as|is)(?![[:alnum:]_])"},{"name":"keyword.operator.case.dw","match":"(-\u003e)"},{"name":"keyword.operator.assignment.metadata.dw","match":"(\u003c~)"},{"name":"keyword.operator.comparison.dw","match":"(~=|==|!=|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"name":"keyword.operator.assignment.dw","match":"(=)"},{"name":"keyword.operator.declaration.dw","match":"(:)"},{"name":"keyword.operator.arithmetic.dw","match":"(\\-|\\+|\\*|\\/)"},{"name":"keyword.operator.implement.dw","match":"\\?\\?\\?"},{"name":"storage.modifier.directive.dw","match":"(?\u003c![[:alnum:]])(?:private)(?![[:alnum:]_])"}]},"namespace":{"patterns":[{"match":"(ns)\\s+([[:alpha:]][[:alnum:]_]*)\\s+([^\\s]*)","captures":{"1":{"name":"storage.type.dw"},"2":{"name":"entity.name.variable.dw"},"3":{"name":"markup.underline.link"}}}]},"number-constants":{"patterns":[{"name":"constant.numeric.dw","match":"(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][0-9]*)?"}]},"regex":{"patterns":[{"name":"string.regexp.dw","match":"\\/.*\\/"}]},"selector":{"patterns":[{"name":"storage.type.dw","match":"\\.\\.|\\.\\*|\\.\\^|\\.\\@|\\."},{"name":"storage.type.dw","begin":"\\[","end":"\\]","patterns":[{"include":"$self"}]}]},"string-constants":{"patterns":[{"name":"string.quoted.double.dw","begin":"\"","end":"\"","patterns":[{"include":"#string-interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dw"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dw"}}},{"name":"string.quoted.single.dw","begin":"'","end":"'","patterns":[{"include":"#string-interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dw"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dw"}}},{"name":"string.quoted.backtick.dw","begin":"`","end":"`","patterns":[{"include":"#string-interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dw"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dw"}}}]},"string-interpolation":{"patterns":[{"begin":"\\$\\(","end":"\\)","patterns":[{"include":"#selector"},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.other.dw"}},"endCaptures":{"0":{"name":"keyword.other.dw"}}},{"match":"(\\$)([[:alpha:]][[:alnum:]_]*)","captures":{"1":{"name":"keyword.other.dw"},"2":{"name":"entity.name.variable.dw"}}}]}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Delimiter-separated values","scopeName":"source.dsv","patterns":[{"include":"#main"}],"repository":{"field":{"patterns":[{"name":"meta.field.empty.dsv","match":"(.)[ \\t\\v\\f]*(?=$|\\1)","captures":{"1":{"patterns":[{"include":"#separator"}]}}},{"name":"meta.field.dsv","contentName":"string.unquoted.dsv","begin":"(.)(\\s*)(?=\\S)(?!\\1)","end":"([ \\t\\v\\f]*)(?=\\1|$)","beginCaptures":{"1":{"patterns":[{"include":"#separator"}]},"2":{"name":"punctuation.whitespace.leading.dsv"}},"endCaptures":{"1":{"name":"punctuation.whitespace.trailing.dsv"}}}]},"main":{"patterns":[{"include":"#record"}]},"record":{"name":"meta.record.dsv","begin":"(?:^(\\s*)([^;:|~#^!\\x1C-\\x1F]+?)(\\s*))?(?=([;:|~#^!\\x1C-\\x1F]))","end":"(?!\\G)(?=\\4|$)","patterns":[{"include":"#field"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.dsv"},"2":{"name":"string.unquoted.dsv"},"3":{"name":"punctuation.whitespace.trailing.dsv"}}},"separator":{"name":"keyword.operator.separator.dsv","match":".","captures":{"0":{"patterns":[{"name":"punctuation.c0.ctrl-char.file-separator.dsv","match":"\\x1C"},{"name":"punctuation.c0.ctrl-char.group-separator.dsv","match":"\\x1D"},{"name":"punctuation.c0.ctrl-char.record-separator.dsv","match":"\\x1E"},{"name":"punctuation.c0.ctrl-char.unit-separator.dsv","match":"\\x1F"},{"name":"punctuation.separator.delimiter.dsv","match":"."}]}}}}}
|
data/grammars/source.erlang.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Erlang","scopeName":"source.erlang","patterns":[{"include":"#module-directive"},{"include":"#import-export-directive"},{"include":"#behaviour-directive"},{"include":"#record-directive"},{"include":"#define-directive"},{"include":"#macro-directive"},{"include":"#doc-directive"},{"include":"#directive"},{"include":"#function"},{"include":"#everything-else"}],"repository":{"atom":{"patterns":[{"name":"constant.other.symbol.quoted.single.erlang","begin":"(')","end":"(')","patterns":[{"name":"constant.other.symbol.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.atom.erlang","match":"\\\\\\^?.?"}],"beginCaptures":{"1":{"name":"punctuation.definition.symbol.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.symbol.end.erlang"}}},{"name":"constant.other.symbol.unquoted.erlang","match":"[a-z][a-zA-Z\\d@_]*+"}]},"behaviour-directive":{"name":"meta.directive.behaviour.erlang","match":"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.behaviour.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.behaviour.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"binary":{"name":"meta.structure.binary.erlang","begin":"(\u003c\u003c)","end":"(\u003e\u003e)","patterns":[{"match":"(,)|(:)","captures":{"1":{"name":"punctuation.separator.binary.erlang"},"2":{"name":"punctuation.separator.value-size.erlang"}}},{"include":"#internal-type-specifiers"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.binary.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.binary.end.erlang"}}},"character":{"patterns":[{"name":"constant.character.erlang","match":"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))","captures":{"1":{"name":"punctuation.definition.character.erlang"},"2":{"name":"constant.character.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"},"5":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$\\\\\\^?.?"},{"name":"constant.character.erlang","match":"(\\$)[ \\S]","captures":{"1":{"name":"punctuation.definition.character.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$.?"}]},"comment":{"begin":"(^[ \\t]+)?(?=%)","end":"(?!\\G)","patterns":[{"name":"comment.line.percentage.erlang","begin":"%","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.erlang"}}},"define-directive":{"patterns":[{"name":"meta.directive.define.erlang","begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.define.erlang","begin":"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()","end":"(\\))\\s*+(\\.)","patterns":[{"begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()","end":"(\\))\\s*(,)","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.separator.parameters.erlang"}}},{"name":"punctuation.separator.define.erlang","match":"\\|\\||\\||:|;|,|\\.|-\u003e"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"directive":{"patterns":[{"name":"meta.directive.erlang","begin":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)","end":"(\\)?)\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.erlang","match":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.section.directive.end.erlang"}}}]},"doc-directive":{"name":"meta.directive.doc.erlang","contentName":"meta.embedded.block.markdown","begin":"^\\s*+(-)\\s*+((module)?doc)\\s*([(]\\s*)?(~[bBsS]?)?(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\7))\\s*([)]\\s*)?(\\.)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.doc.erlang"},"4":{"name":"punctuation.definition.parameters.begin.erlang"},"5":{"name":"storage.type.string.erlang"},"6":{"name":"comment.block.documentation.erlang"},"7":{"name":"punctuation.definition.string.begin.erlang"},"8":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"comment.block.documentation.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"},"3":{"name":"punctuation.section.directive.end.Erlang"}}},"docstring":{"name":"string.quoted.triple.erlang","begin":"(?\u003c!\")(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\2))(?!\")","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"meta.string.quoted.triple.begin.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"},"3":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"everything-else":{"patterns":[{"include":"#comment"},{"include":"#record-usage"},{"include":"#macro-usage"},{"include":"#expression"},{"include":"#keyword"},{"include":"#textual-operator"},{"include":"#language-constant"},{"include":"#function-call"},{"include":"#tuple"},{"include":"#list"},{"include":"#binary"},{"include":"#parenthesized-expression"},{"include":"#character"},{"include":"#number"},{"include":"#atom"},{"include":"#sigil-docstring"},{"include":"#sigil-docstring-verbatim"},{"include":"#sigil-string"},{"include":"#docstring"},{"include":"#string"},{"include":"#symbolic-operator"},{"include":"#variable"}]},"expression":{"patterns":[{"name":"meta.expression.if.erlang","begin":"\\b(if)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.if.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.case.erlang","begin":"\\b(case)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.case.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.receive.erlang","begin":"\\b(receive)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.receive.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","match":"\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)","captures":{"1":{"name":"keyword.control.fun.erlang"},"10":{"name":"punctuation.separator.function-arity.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"variable.other.erlang"},"6":{"name":"punctuation.separator.module-function.erlang"},"8":{"name":"entity.name.function.erlang"},"9":{"name":"variable.other.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"},"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(?!\\()","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"begin":"\\b(fun)\\s*+(\\()(?=(\\s*+\\()|(\\)))","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"meta.expression.fun.erlang","begin":"\\b(fun)\\b","end":"\\b(end)\\b","patterns":[{"begin":"(?=\\()","end":"(;)|(?=\\bend\\b)","patterns":[{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.try.erlang","begin":"\\b(try)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.try.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.begin.erlang","begin":"\\b(begin)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.begin.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.maybe.erlang","begin":"\\b(maybe)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.maybe.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}}]},"function":{"name":"meta.function.erlang","begin":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","end":"(\\.)","patterns":[{"match":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","captures":{"1":{"name":"entity.name.function.erlang"}}},{"begin":"(?=\\()","end":"(;)|(?=\\.)","patterns":[{"include":"#parenthesized-expression"},{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.terminator.function.erlang"}}},"function-call":{"name":"meta.function-call.erlang","begin":"(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())","end":"(\\))","patterns":[{"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*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"entity.name.type.class.module.erlang"},"3":{"name":"punctuation.separator.module-function.erlang"},"4":{"name":"entity.name.function.guard.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}}},{"begin":"((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"},"7":{"name":"entity.name.function.erlang"},"8":{"name":"variable.other.erlang"},"9":{"name":"punctuation.definition.parameters.begin.erlang"}}}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},"import-export-directive":{"patterns":[{"name":"meta.directive.import.erlang","begin":"^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.export.erlang","begin":"^\\s*+(-)\\s*+(export)\\s*+(\\()","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.export.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"internal-expression-punctuation":{"match":"(-\u003e)|(;)|(,)","captures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"},"2":{"name":"punctuation.separator.clauses.erlang"},"3":{"name":"punctuation.separator.expressions.erlang"}}},"internal-function-list":{"name":"meta.structure.list.function.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"begin":"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)","end":"(,)|(?=\\])","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.separator.function-arity.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.list.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"internal-function-parts":{"patterns":[{"begin":"(?=\\()","end":"(-\u003e)","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"punctuation.separator.guards.erlang","match":",|;"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"}}},{"name":"punctuation.separator.expressions.erlang","match":","},{"include":"#everything-else"}]},"internal-record-body":{"name":"meta.structure.record.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"begin":"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))","end":"(,)|(?=\\})","patterns":[{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"variable.other.field.erlang"},"3":{"name":"variable.language.omitted.field.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.class.record.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.class.record.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.class.record.end.erlang"}}},"internal-string-body":{"patterns":[{"name":"constant.character.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"\\\\\\^?.?"},{"include":"#internal-string-body-verbatim"}]},"internal-string-body-verbatim":{"patterns":[{"name":"constant.character.format.placeholder.other.erlang","match":"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"},"10":{"name":"punctuation.separator.placeholder-parts.erlang"},"6":{"name":"punctuation.separator.placeholder-parts.erlang"}}},{"name":"constant.character.format.placeholder.other.erlang","match":"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"~[^\"]?"}]},"internal-type-specifiers":{"begin":"(/)","end":"(?=,|:|\u003e\u003e)","patterns":[{"match":"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)","captures":{"1":{"name":"storage.type.erlang"},"2":{"name":"storage.modifier.signedness.erlang"},"3":{"name":"storage.modifier.endianness.erlang"},"4":{"name":"storage.modifier.unit.erlang"},"5":{"name":"punctuation.separator.unit-specifiers.erlang"},"6":{"name":"constant.numeric.integer.decimal.erlang"},"7":{"name":"punctuation.separator.type-specifiers.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.value-type.erlang"}}},"keyword":{"name":"keyword.control.erlang","match":"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b"},"language-constant":{"name":"constant.language","match":"\\b(false|true|undefined)\\b"},"list":{"name":"meta.structure.list.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"name":"punctuation.separator.list.erlang","match":"\\||\\|\\||,"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"macro-directive":{"patterns":[{"name":"meta.directive.ifdef.erlang","match":"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifdef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.ifndef.erlang","match":"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifndef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.undef.erlang","match":"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.undef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}}]},"macro-usage":{"name":"meta.macro-usage.erlang","match":"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)","captures":{"1":{"name":"keyword.operator.macro.erlang"},"2":{"name":"entity.name.function.macro.erlang"}}},"module-directive":{"name":"meta.directive.module.erlang","match":"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.module.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"number":{"begin":"(?=\\d)","end":"(?!\\d)","patterns":[{"name":"constant.numeric.float.erlang","match":"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?","captures":{"1":{"name":"punctuation.separator.integer-float.erlang"},"2":{"name":"punctuation.separator.float-exponent.erlang"}}},{"name":"constant.numeric.integer.binary.erlang","match":"2(#)([0-1]++_)*[0-1]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-3.erlang","match":"3(#)([0-2]++_)*[0-2]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-4.erlang","match":"4(#)([0-3]++_)*[0-3]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-5.erlang","match":"5(#)([0-4]++_)*[0-4]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-6.erlang","match":"6(#)([0-5]++_)*[0-5]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-7.erlang","match":"7(#)([0-6]++_)*[0-6]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.octal.erlang","match":"8(#)([0-7]++_)*[0-7]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-9.erlang","match":"9(#)([0-8]++_)*[0-8]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.decimal.erlang","match":"10(#)(\\d++_)*\\d++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-11.erlang","match":"11(#)([\\daA]++_)*[\\daA]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-12.erlang","match":"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-13.erlang","match":"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-14.erlang","match":"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-15.erlang","match":"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.hexadecimal.erlang","match":"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-17.erlang","match":"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-18.erlang","match":"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-19.erlang","match":"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-20.erlang","match":"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-21.erlang","match":"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-22.erlang","match":"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-23.erlang","match":"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-24.erlang","match":"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-25.erlang","match":"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-26.erlang","match":"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-27.erlang","match":"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-28.erlang","match":"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-29.erlang","match":"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-30.erlang","match":"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-31.erlang","match":"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-32.erlang","match":"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-33.erlang","match":"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-34.erlang","match":"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-35.erlang","match":"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-36.erlang","match":"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"invalid.illegal.integer.erlang","match":"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++"},{"name":"constant.numeric.integer.decimal.erlang","match":"(\\d++_)*\\d++"}]},"parenthesized-expression":{"name":"meta.expression.parenthesized","begin":"(\\()","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.expression.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.section.expression.end.erlang"}}},"record-directive":{"name":"meta.directive.record.erlang","begin":"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-record-body"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.record.definition.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},"record-usage":{"patterns":[{"name":"meta.record-usage.erlang","match":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","captures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"},"3":{"name":"punctuation.separator.record-field.erlang"},"4":{"name":"variable.other.field.erlang"}}},{"name":"meta.record-usage.erlang","begin":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","end":"(?\u003c=\\})","patterns":[{"include":"#internal-record-body"}],"beginCaptures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"}}}]},"sigil-docstring":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[bs])(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-docstring-verbatim":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[BS]?)(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string":{"patterns":[{"include":"#sigil-string-parenthesis"},{"include":"#sigil-string-parenthesis-verbatim"},{"include":"#sigil-string-curly-brackets"},{"include":"#sigil-string-curly-brackets-verbatim"},{"include":"#sigil-string-square-brackets"},{"include":"#sigil-string-square-brackets-verbatim"},{"include":"#sigil-string-less-greater"},{"include":"#sigil-string-less-greater-verbatim"},{"include":"#sigil-string-single-character"},{"include":"#sigil-string-single-character-verbatim"},{"include":"#sigil-string-single-quote"},{"include":"#sigil-string-single-quote-verbatim"},{"include":"#sigil-string-double-quote"},{"include":"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[bs]?)([{])","end":"([}])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-curly-brackets-verbatim":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[BS])([{])","end":"([}])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote":{"name":"string.quoted.double.sigil.erlang","begin":"(~[bs]?)(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote-verbatim":{"name":"string.quoted.double.sigil.erlang","begin":"(~[BS])(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[bs]?)(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater-verbatim":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[BS])(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[bs]?)([(])","end":"([)])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis-verbatim":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[BS])([(])","end":"([)])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character":{"name":"string.quoted.other.sigil.erlang","begin":"(~[bs]?)([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character-verbatim":{"name":"string.quoted.other.sigil.erlang","begin":"(~[BS])([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote":{"name":"string.quoted.single.sigil.erlang","begin":"(~[bs]?)(')","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote-verbatim":{"name":"string.quoted.single.sigil.erlang","begin":"(~[BS])(')","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[bs]?)([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets-verbatim":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[BS])([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"string":{"name":"string.quoted.double.erlang","begin":"(\")","end":"(\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"symbolic-operator":{"name":"keyword.operator.symbolic.erlang","match":"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=\u003c|=|\u003c-|\u003c|\u003e=|\u003e|!|::|\\?="},"textual-operator":{"name":"keyword.operator.textual.erlang","match":"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b"},"tuple":{"name":"meta.structure.tuple.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"name":"punctuation.separator.tuple.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.tuple.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.tuple.end.erlang"}}},"variable":{"match":"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)","captures":{"1":{"name":"variable.other.erlang"},"2":{"name":"variable.language.omitted.erlang"}}}}}
|
|
1
|
+
{"name":"Erlang","scopeName":"source.erlang","patterns":[{"include":"#module-directive"},{"include":"#import-export-directive"},{"include":"#behaviour-directive"},{"include":"#record-directive"},{"include":"#define-directive"},{"include":"#macro-directive"},{"include":"#doc-directive"},{"include":"#directive"},{"include":"#function"},{"include":"#everything-else"}],"repository":{"atom":{"patterns":[{"name":"constant.other.symbol.quoted.single.erlang","begin":"(')","end":"(')","patterns":[{"name":"constant.other.symbol.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.atom.erlang","match":"\\\\\\^?.?"}],"beginCaptures":{"1":{"name":"punctuation.definition.symbol.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.symbol.end.erlang"}}},{"name":"constant.other.symbol.unquoted.erlang","match":"[a-z][a-zA-Z\\d@_]*+"}]},"behaviour-directive":{"name":"meta.directive.behaviour.erlang","match":"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.behaviour.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.behaviour.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"binary":{"name":"meta.structure.binary.erlang","begin":"(\u003c\u003c)","end":"(\u003e\u003e)","patterns":[{"match":"(,)|(:)","captures":{"1":{"name":"punctuation.separator.binary.erlang"},"2":{"name":"punctuation.separator.value-size.erlang"}}},{"include":"#internal-type-specifiers"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.binary.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.binary.end.erlang"}}},"character":{"patterns":[{"name":"constant.character.erlang","match":"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))","captures":{"1":{"name":"punctuation.definition.character.erlang"},"2":{"name":"constant.character.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"},"5":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$\\\\\\^?.?"},{"name":"constant.character.erlang","match":"(\\$)[ \\S]","captures":{"1":{"name":"punctuation.definition.character.erlang"}}},{"name":"invalid.illegal.character.erlang","match":"\\$.?"}]},"comment":{"begin":"(^[ \\t]+)?(?=%)","end":"(?!\\G)","patterns":[{"name":"comment.line.percentage.erlang","begin":"%","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.erlang"}}},"define-directive":{"patterns":[{"name":"meta.directive.define.erlang","begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.define.erlang","begin":"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()","end":"(\\))\\s*+(\\.)","patterns":[{"begin":"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()","end":"(\\))\\s*(,)","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.separator.parameters.erlang"}}},{"name":"punctuation.separator.define.erlang","match":"\\|\\||\\||:|;|,|\\.|-\u003e"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"directive":{"patterns":[{"name":"meta.directive.erlang","begin":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)","end":"(\\)?)\\s*+(\\.)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.erlang","match":"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.section.directive.end.erlang"}}}]},"doc-directive":{"name":"meta.directive.doc.erlang","contentName":"meta.embedded.block.markdown","begin":"^\\s*+(-)\\s*+((module)?doc)\\s*([(]\\s*)?(~[bBsS]?)?(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\7))\\s*([)]\\s*)?(\\.)","patterns":[{"include":"text.md"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.doc.erlang"},"4":{"name":"punctuation.definition.parameters.begin.erlang"},"5":{"name":"storage.type.string.erlang"},"6":{"name":"comment.block.documentation.erlang"},"7":{"name":"punctuation.definition.string.begin.erlang"},"8":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"comment.block.documentation.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"},"3":{"name":"punctuation.section.directive.end.Erlang"}}},"docstring":{"name":"string.quoted.triple.erlang","begin":"(?\u003c!\")(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\2))(?!\")","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"meta.string.quoted.triple.begin.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"},"3":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"everything-else":{"patterns":[{"include":"#comment"},{"include":"#record-usage"},{"include":"#macro-usage"},{"include":"#expression"},{"include":"#keyword"},{"include":"#textual-operator"},{"include":"#language-constant"},{"include":"#function-call"},{"include":"#tuple"},{"include":"#list"},{"include":"#binary"},{"include":"#parenthesized-expression"},{"include":"#character"},{"include":"#number"},{"include":"#atom"},{"include":"#sigil-docstring"},{"include":"#sigil-docstring-verbatim"},{"include":"#sigil-string"},{"include":"#docstring"},{"include":"#string"},{"include":"#symbolic-operator"},{"include":"#variable"}]},"expression":{"patterns":[{"name":"meta.expression.if.erlang","begin":"\\b(if)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.if.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.case.erlang","begin":"\\b(case)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.case.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.receive.erlang","begin":"\\b(receive)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.receive.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","match":"\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)","captures":{"1":{"name":"keyword.control.fun.erlang"},"10":{"name":"punctuation.separator.function-arity.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"variable.other.erlang"},"6":{"name":"punctuation.separator.module-function.erlang"},"8":{"name":"entity.name.function.erlang"},"9":{"name":"variable.other.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"},"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"name":"meta.expression.fun.implicit.erlang","begin":"\\b(fun)\\s+(?!\\()","end":"(/)","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.function-arity.erlang"}}},{"begin":"\\b(fun)\\s*+(\\()(?=(\\s*+\\()|(\\)))","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"meta.expression.fun.erlang","begin":"\\b(fun)\\b","end":"\\b(end)\\b","patterns":[{"begin":"(?=\\()","end":"(;)|(?=\\bend\\b)","patterns":[{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.fun.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.try.erlang","begin":"\\b(try)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.try.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.begin.erlang","begin":"\\b(begin)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.begin.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}},{"name":"meta.expression.maybe.erlang","begin":"\\b(maybe)\\b","end":"\\b(end)\\b","patterns":[{"include":"#internal-expression-punctuation"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"keyword.control.maybe.erlang"}},"endCaptures":{"1":{"name":"keyword.control.end.erlang"}}}]},"function":{"name":"meta.function.erlang","begin":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","end":"(\\.)","patterns":[{"match":"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()","captures":{"1":{"name":"entity.name.function.erlang"}}},{"begin":"(?=\\()","end":"(;)|(?=\\.)","patterns":[{"include":"#parenthesized-expression"},{"include":"#internal-function-parts"}],"endCaptures":{"1":{"name":"punctuation.separator.clauses.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.definition.erlang"}},"endCaptures":{"1":{"name":"punctuation.terminator.function.erlang"}}},"function-call":{"name":"meta.function-call.erlang","begin":"(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())","end":"(\\))","patterns":[{"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*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"entity.name.type.class.module.erlang"},"3":{"name":"punctuation.separator.module-function.erlang"},"4":{"name":"entity.name.function.guard.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}}},{"begin":"((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()","end":"(?=\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"3":{"name":"entity.name.type.class.module.erlang"},"4":{"name":"variable.other.erlang"},"5":{"name":"punctuation.separator.module-function.erlang"},"7":{"name":"entity.name.function.erlang"},"8":{"name":"variable.other.erlang"},"9":{"name":"punctuation.definition.parameters.begin.erlang"}}}],"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},"import-export-directive":{"patterns":[{"name":"meta.directive.import.erlang","begin":"^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.export.erlang","begin":"^\\s*+(-)\\s*+(export)\\s*+(\\()","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-function-list"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.export.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}}]},"internal-expression-punctuation":{"match":"(-\u003e)|(;)|(,)","captures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"},"2":{"name":"punctuation.separator.clauses.erlang"},"3":{"name":"punctuation.separator.expressions.erlang"}}},"internal-function-list":{"name":"meta.structure.list.function.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"begin":"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)","end":"(,)|(?=\\])","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.separator.function-arity.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.list.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"internal-function-parts":{"patterns":[{"begin":"(?=\\()","end":"(-\u003e)","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"name":"punctuation.separator.parameters.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}}},{"name":"punctuation.separator.guards.erlang","match":",|;"},{"include":"#everything-else"}],"endCaptures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"}}},{"name":"punctuation.separator.expressions.erlang","match":","},{"include":"#everything-else"}]},"internal-record-body":{"name":"meta.structure.record.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"begin":"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))","end":"(,)|(?=\\})","patterns":[{"include":"#everything-else"}],"beginCaptures":{"2":{"name":"variable.other.field.erlang"},"3":{"name":"variable.language.omitted.field.erlang"}},"endCaptures":{"1":{"name":"punctuation.separator.class.record.erlang"}}},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.class.record.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.class.record.end.erlang"}}},"internal-string-body":{"patterns":[{"name":"constant.character.escape.erlang","match":"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})","captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"\\\\\\^?.?"},{"include":"#internal-string-body-verbatim"}]},"internal-string-body-verbatim":{"patterns":[{"name":"constant.character.format.placeholder.other.erlang","match":"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"},"10":{"name":"punctuation.separator.placeholder-parts.erlang"},"6":{"name":"punctuation.separator.placeholder-parts.erlang"}}},{"name":"constant.character.format.placeholder.other.erlang","match":"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]","captures":{"1":{"name":"punctuation.definition.placeholder.erlang"}}},{"name":"invalid.illegal.string.erlang","match":"~[^\"]?"}]},"internal-type-specifiers":{"begin":"(/)","end":"(?=,|:|\u003e\u003e)","patterns":[{"match":"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)","captures":{"1":{"name":"storage.type.erlang"},"2":{"name":"storage.modifier.signedness.erlang"},"3":{"name":"storage.modifier.endianness.erlang"},"4":{"name":"storage.modifier.unit.erlang"},"5":{"name":"punctuation.separator.unit-specifiers.erlang"},"6":{"name":"constant.numeric.integer.decimal.erlang"},"7":{"name":"punctuation.separator.type-specifiers.erlang"}}}],"beginCaptures":{"1":{"name":"punctuation.separator.value-type.erlang"}}},"keyword":{"name":"keyword.control.erlang","match":"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b"},"language-constant":{"name":"constant.language","match":"\\b(false|true|undefined)\\b"},"list":{"name":"meta.structure.list.erlang","begin":"(\\[)","end":"(\\])","patterns":[{"name":"punctuation.separator.list.erlang","match":"\\||\\|\\||,"},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}}},"macro-directive":{"patterns":[{"name":"meta.directive.ifdef.erlang","match":"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifdef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.ifndef.erlang","match":"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifndef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},{"name":"meta.directive.undef.erlang","match":"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.undef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}}]},"macro-usage":{"name":"meta.macro-usage.erlang","match":"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)","captures":{"1":{"name":"keyword.operator.macro.erlang"},"2":{"name":"entity.name.function.macro.erlang"}}},"module-directive":{"name":"meta.directive.module.erlang","match":"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)","captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.module.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}}},"number":{"begin":"(?=\\d)","end":"(?!\\d)","patterns":[{"name":"constant.numeric.float.erlang","match":"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?","captures":{"1":{"name":"punctuation.separator.integer-float.erlang"},"2":{"name":"punctuation.separator.float-exponent.erlang"}}},{"name":"constant.numeric.integer.binary.erlang","match":"2(#)([0-1]++_)*[0-1]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-3.erlang","match":"3(#)([0-2]++_)*[0-2]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-4.erlang","match":"4(#)([0-3]++_)*[0-3]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-5.erlang","match":"5(#)([0-4]++_)*[0-4]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-6.erlang","match":"6(#)([0-5]++_)*[0-5]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-7.erlang","match":"7(#)([0-6]++_)*[0-6]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.octal.erlang","match":"8(#)([0-7]++_)*[0-7]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-9.erlang","match":"9(#)([0-8]++_)*[0-8]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.decimal.erlang","match":"10(#)(\\d++_)*\\d++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-11.erlang","match":"11(#)([\\daA]++_)*[\\daA]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-12.erlang","match":"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-13.erlang","match":"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-14.erlang","match":"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-15.erlang","match":"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.hexadecimal.erlang","match":"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-17.erlang","match":"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-18.erlang","match":"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-19.erlang","match":"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-20.erlang","match":"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-21.erlang","match":"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-22.erlang","match":"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-23.erlang","match":"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-24.erlang","match":"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-25.erlang","match":"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-26.erlang","match":"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-27.erlang","match":"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-28.erlang","match":"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-29.erlang","match":"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-30.erlang","match":"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-31.erlang","match":"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-32.erlang","match":"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-33.erlang","match":"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-34.erlang","match":"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-35.erlang","match":"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"constant.numeric.integer.base-36.erlang","match":"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++","captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}}},{"name":"invalid.illegal.integer.erlang","match":"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++"},{"name":"constant.numeric.integer.decimal.erlang","match":"(\\d++_)*\\d++"}]},"parenthesized-expression":{"name":"meta.expression.parenthesized","begin":"(\\()","end":"(\\))","patterns":[{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.section.expression.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.section.expression.end.erlang"}}},"record-directive":{"name":"meta.directive.record.erlang","begin":"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)","end":"(\\))\\s*+(\\.)","patterns":[{"include":"#internal-record-body"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.record.definition.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}}},"record-usage":{"patterns":[{"name":"meta.record-usage.erlang","match":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","captures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"},"3":{"name":"punctuation.separator.record-field.erlang"},"4":{"name":"variable.other.field.erlang"}}},{"name":"meta.record-usage.erlang","begin":"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')","end":"(?\u003c=\\})","patterns":[{"include":"#internal-record-body"}],"beginCaptures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"}}}]},"sigil-docstring":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[bs])(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-docstring-verbatim":{"name":"string.quoted.tripple.sigil.erlang","begin":"(~[BS]?)(([\"]{3,})\\s*)(\\S.*)?$","end":"^(\\s*(\\3))(?!\")","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string":{"patterns":[{"include":"#sigil-string-parenthesis"},{"include":"#sigil-string-parenthesis-verbatim"},{"include":"#sigil-string-curly-brackets"},{"include":"#sigil-string-curly-brackets-verbatim"},{"include":"#sigil-string-square-brackets"},{"include":"#sigil-string-square-brackets-verbatim"},{"include":"#sigil-string-less-greater"},{"include":"#sigil-string-less-greater-verbatim"},{"include":"#sigil-string-single-character"},{"include":"#sigil-string-single-character-verbatim"},{"include":"#sigil-string-single-quote"},{"include":"#sigil-string-single-quote-verbatim"},{"include":"#sigil-string-double-quote"},{"include":"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[bs]?)([{])","end":"([}])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-curly-brackets-verbatim":{"name":"string.quoted.curly-brackets.sigil.erlang","begin":"(~[BS])([{])","end":"([}])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote":{"name":"string.quoted.double.sigil.erlang","begin":"(~[bs]?)(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-double-quote-verbatim":{"name":"string.quoted.double.sigil.erlang","begin":"(~[BS])(\")","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[bs]?)(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-less-greater-verbatim":{"name":"string.quoted.less-greater.sigil.erlang","begin":"(~[BS])(\u003c)","end":"(\u003e)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[bs]?)([(])","end":"([)])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-parenthesis-verbatim":{"name":"string.quoted.parenthesis.sigil.erlang","begin":"(~[BS])([(])","end":"([)])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character":{"name":"string.quoted.other.sigil.erlang","begin":"(~[bs]?)([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-character-verbatim":{"name":"string.quoted.other.sigil.erlang","begin":"(~[BS])([/\\|`#])","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote":{"name":"string.quoted.single.sigil.erlang","begin":"(~[bs]?)(')","end":"(\\2)","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-single-quote-verbatim":{"name":"string.quoted.single.sigil.erlang","begin":"(~[BS])(')","end":"(\\2)","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[bs]?)([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"sigil-string-square-brackets-verbatim":{"name":"string.quoted.square-brackets.sigil.erlang","begin":"(~[BS])([\\[])","end":"([\\]])","patterns":[{"include":"#internal-string-body-verbatim"}],"beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"string":{"name":"string.quoted.double.erlang","begin":"(\")","end":"(\")","patterns":[{"include":"#internal-string-body"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}}},"symbolic-operator":{"name":"keyword.operator.symbolic.erlang","match":"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=\u003c|=|\u003c-|\u003c|\u003e=|\u003e|!|::|\\?="},"textual-operator":{"name":"keyword.operator.textual.erlang","match":"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b"},"tuple":{"name":"meta.structure.tuple.erlang","begin":"(\\{)","end":"(\\})","patterns":[{"name":"punctuation.separator.tuple.erlang","match":","},{"include":"#everything-else"}],"beginCaptures":{"1":{"name":"punctuation.definition.tuple.begin.erlang"}},"endCaptures":{"1":{"name":"punctuation.definition.tuple.end.erlang"}}},"variable":{"match":"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)","captures":{"1":{"name":"variable.other.erlang"},"2":{"name":"variable.language.omitted.erlang"}}}}}
|
data/grammars/source.firrtl.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"FIRRTL","scopeName":"source.firrtl","patterns":[{"include":"#version"},{"include":"#circuit"},{"include":"#declaration"},{"include":"#statement"},{"include":"#comment"},{"include":"#file_info"}],"repository":{"circuit":{"match":"^(circuit)\\s+(\\w+)\\s*:","captures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"comment":{"name":"comment.line.character.firrtl","match":";.*$"},"declaration":{"patterns":[{"include":"#module"},{"include":"#extmodule"},{"include":"#layer"},{"include":"#type_decl"},{"include":"#port"},{"include":"#wire_or_register"},{"include":"#node"},{"include":"#instance"},{"include":"#memory"}]},"expression":{"patterns":[{"include":"#expression_literal"},{"include":"#expression_primop"},{"include":"#expression_primop_deprecated"},{"include":"#property_literal"},{"include":"#format_string"}]},"expression_literal":{"match":"(([US]Int|Analog)(\u003c(\\d+)\u003e)?\\(.+\\))","captures":{"1":{"name":"constant.numeric.firrtl"}}},"expression_primop":{"begin":"(add|sub|mul|div|rem|lt|leq|gt|geq|eq|neq|pad|asAsyncReset|asUInt|asSInt|asClock|shl|shr|dshl|dshr|cvt|neg|not|and|or|xor|andr|orr|xorr|cat|bits|head|tail|mux|probe|rwprobe|read)\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.firrtl"}}},"expression_primop_deprecated":{"begin":"(asFixedPoint|bpshl|bpshr|bpset|validif)\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"invalid.deprecated.firrtl"}}},"extmodule":{"match":"(extmodule)\\s+(\\w+)\\s*:","captures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"storage.type.class.firrtl"},"3":{"name":"entity.name.type.firrtl"}}},"file_info":{"name":"comment.line.character.firrtl","match":"(@\\[.*\\])"},"format_string":{"name":"string.quoted.double.firrtl","begin":"\"","end":"\"","patterns":[{"name":"variable.other.firrtl","match":"%[bdx%]"},{"name":"variable.other.firrtl","match":"\\\\[nt\\\\\"']"}]},"instance":{"name":"keyword.other.firrtl","match":"inst\\s+(\\w+)\\s+of\\s+","captures":{"1":{"name":"entity.name.type.firrtl"}}},"layer":{"match":"(layer)\\s+(\\w+)\\s*,?\\s*(\\w*)","captures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"},"3":{"name":"storage.modifier.firrtl"}}},"memory":{"match":"(mem)\\s+(\\w+)","captures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"module":{"match":"^\\s*(public\\s+)?(module)\\s+(\\w+)\\s*:","captures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"storage.type.class.firrtl"},"3":{"name":"entity.name.type.firrtl"}}},"node":{"match":"(node)\\s+(\\w+)\\s*","captures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"port":{"begin":"(input|output)\\s+(\\w+)\\s*:","end":"$","patterns":[{"include":"#type"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"storage.type.port.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"property_literal":{"name":"constant.numeric.firrtl","match":"Integer\\((\\d+)\\)"},"statement":{"patterns":[{"include":"#statement_generic"},{"include":"#statement_memory_config"},{"include":"#statement_extmodule_config"}]},"statement_extmodule_config":{"patterns":[{"match":"(parameter)\\s+(\\w+)","captures":{"1":{"name":"keyword.other.firrtl"}}}]},"statement_generic":{"begin":"(connect|invalidate|attach\\(|propassign|skip|when|else(\\s+when)?|stop|printf|assert|assume|cover|layerblock|define|force(_initial)?|release(_initial)?)","end":"$","patterns":[{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},"statement_memory_config":{"patterns":[{"begin":"(data-type)\\s*=\u003e","end":"$","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},{"match":"(depth|reader|writer|read-latency|write-latency)\\s*=\u003e\\s*\\w+","captures":{"1":{"name":"keyword.other.firrtl"}}},{"match":"(read-under-write)\\s*=\u003e\\s*(old|new|undefined)","captures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"keyword.other.firrtl"}}}]},"type":{"patterns":[{"include":"#type_ground_nowidth"},{"include":"#type_ground_width"},{"include":"#type_bundle"},{"include":"#type_probe"},{"include":"#type_enum"},{"include":"#type_property"}]},"type_bundle":{"name":"meta.type.bundle.firrtl","begin":"(const\\s+)?{","end":"}","patterns":[{"include":"#type_bundle_field"},{"include":"#type"}],"captures":{"1":{"name":"storage.modifier.firrtl"}}},"type_bundle_field":{"match":"(flip\\s+)?(\\w+)\\s*:","captures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"type_decl":{"begin":"(type)\\s+(\\w+)\\s*=","end":"$","patterns":[{"include":"#type"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.port.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"type_enum":{"begin":"({\\|)","end":"(\\|})","patterns":[{"include":"#type"}],"captures":{"1":{"name":"storage.type.firrtl"}}},"type_ground_nowidth":{"name":"storage.type.firrtl","match":"(const\\s+)?(Clock|Reset|AsyncReset)","captures":{"1":{"name":"storage.modifier.firrtl"}}},"type_ground_width":{"name":"storage.type.firrtl","match":"(const\\s+)?([US]Int|Analog)(\u003c(\\d+)\u003e)?","captures":{"1":{"name":"storage.modifier.firrtl"},"4":{"name":"constant.numeric.firrtl"}}},"type_probe":{"begin":"((RW)?Probe\u003c)","end":"(\u003e)","patterns":[{"include":"#type"}],"captures":{"1":{"name":"storage.type.firrtl"}}},"type_property":{"name":"storage.type.firrtl","match":"Integer"},"version":{"name":"comment.line.character.firrtl","match":"^FIRRTL version \\d+\\.\\d+\\.\\d+$"},"wire_or_register":{"begin":"(wire|reg|regreset)\\s+(\\w+)\\s*:","end":"$","patterns":[{"include":"#type"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"entity.name.type.firrtl"}}}}}
|
|
1
|
+
{"name":"FIRRTL","scopeName":"source.firrtl","patterns":[{"include":"#version"},{"include":"#circuit"},{"include":"#annotations"},{"include":"#declaration"},{"include":"#statement"},{"include":"#comment"},{"include":"#file_info"}],"repository":{"annotations":{"name":"meta.annotation.firrtl","begin":"%\\[","end":"\\]","patterns":[{"include":"#comment"}]},"circuit":{"match":"^(circuit)\\s+(\\w+|`[\\w]+`)\\s*:","captures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"comment":{"name":"comment.line.character.firrtl","match":";.*$"},"declaration":{"patterns":[{"include":"#formal"},{"include":"#module"},{"include":"#extmodule"},{"include":"#layer"},{"include":"#type_decl"},{"include":"#port"},{"include":"#wire_or_register"},{"include":"#node"},{"include":"#instance"},{"include":"#memory"}]},"expression":{"patterns":[{"include":"#expression_mux"},{"include":"#expression_enum"},{"include":"#expression_intrinsic"},{"include":"#expression_primop"},{"include":"#expression_primop_deprecated"},{"include":"#expression_probe"},{"include":"#expression_literal"},{"include":"#expression_radix_literal"},{"include":"#expression_reference"}]},"expression_enum":{"begin":"\\{\\|","end":"\\|\\}\\s*\\(\\s*(\\w+|`[\\w]+`)(?:\\s*,\\s*)?","patterns":[{"include":"#type_enum_variant"},{"include":"#type"}],"endCaptures":{"1":{"name":"variable.other.firrtl"}}},"expression_intrinsic":{"begin":"\\b(intrinsic)\\s*\\(","end":"\\)","patterns":[{"include":"#intrinsic_spec"},{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},"expression_literal":{"match":"\\b([US]Int|Analog)(?:\u003c(\\d+)\u003e)?\\s*\\(\\s*([+-]?\\d+)\\s*\\)","captures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"constant.numeric.firrtl"},"3":{"name":"constant.numeric.firrtl"}}},"expression_mux":{"begin":"\\b(mux)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.operator.firrtl"}}},"expression_primop":{"begin":"\\b(add|sub|mul|div|rem|lt|leq|gt|geq|eq|neq|pad|asAsyncReset|asReset|asUInt|asSInt|asClock|shl|shr|dshl|dshr|cvt|neg|not|and|or|xor|andr|orr|xorr|cat|bits|head|tail)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"name":"constant.numeric.firrtl","match":"\\d+"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.operator.firrtl"}}},"expression_primop_deprecated":{"begin":"\\b(asFixedPoint|bpshl|bpshr|bpset|validif)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"invalid.deprecated.firrtl"}}},"expression_probe":{"begin":"\\b(probe|rwprobe|read)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.operator.firrtl"}}},"expression_radix_literal":{"match":"\\b([US]Int|Analog)(?:\u003c(\\d+)\u003e)?\\s*\\(\\s*([+-]?0[bodh][0-9a-fA-F_]+)\\s*\\)","captures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"constant.numeric.firrtl"},"3":{"name":"constant.numeric.firrtl"}}},"expression_reference":{"name":"variable.other.firrtl","match":"\\b(\\w+|`[\\w]+`)\\b"},"extmodule":{"begin":"^\\s*(extmodule)\\s+(\\w+|`[\\w]+`)","end":":","patterns":[{"match":"\\b(enablelayer)\\s+([\\w.]+)","captures":{"1":{"name":"keyword.control.firrtl"},"2":{"name":"entity.name.class.firrtl"}}},{"match":"\\b(knownlayer)\\s+([\\w.]+(?:\\s*,\\s*[\\w.]+)*)","captures":{"1":{"name":"keyword.control.firrtl"},"2":{"name":"entity.name.class.firrtl"}}}],"beginCaptures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"file_info":{"name":"comment.line.character.firrtl","match":"@\\[[^\\]]+\\]"},"formal":{"match":"^\\s*(formal)\\s+(\\w+|`[\\w]+`)\\s+(of)\\s+(\\w+|`[\\w]+`)\\s*:","captures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"},"3":{"name":"keyword.other.firrtl"},"4":{"name":"entity.name.type.firrtl"}}},"format_string":{"patterns":[{"name":"string.quoted.double.firrtl","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.firrtl","match":"%[bdx%]"},{"name":"constant.character.escape.firrtl","match":"\\\\[nt\\\\\"']"}]},{"name":"string.quoted.single.firrtl","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.firrtl","match":"\\\\[nt\\\\\"']"}]}]},"instance":{"match":"^\\s*(inst)\\s+(\\w+|`[\\w]+`)\\s+(of)\\s+(\\w+|`[\\w]+`)","captures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"entity.name.type.firrtl"},"3":{"name":"keyword.other.firrtl"},"4":{"name":"entity.name.type.firrtl"}}},"intrinsic_spec":{"begin":"(\\w+)\\s*(?:\u003c([^\u003e]+)\u003e)?(?:\\s*:\\s*)?","end":"(?=,|\\))","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"entity.name.function.firrtl"},"2":{"patterns":[{"match":"(\\w+)\\s*=\\s*(\\d+|\"[^\"]*\")","captures":{"1":{"name":"variable.parameter.firrtl"},"2":{"name":"constant.other.firrtl"}}}]}}},"layer":{"match":"^\\s*(layer)\\s+(\\w+|`[\\w]+`)\\s*,\\s*(bind|inline)\\s*:","captures":{"1":{"name":"keyword.declaration.firrtl"},"2":{"name":"entity.name.class.firrtl"},"3":{"name":"storage.modifier.firrtl"}}},"memory":{"match":"^\\s*(mem)\\s+(\\w+|`[\\w]+`)\\s*:","captures":{"1":{"name":"storage.type.class.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"module":{"begin":"^\\s*(public\\s+)?(module)\\s+(\\w+|`[\\w]+`)","end":":","patterns":[{"match":"\\b(enablelayer)\\s+([\\w.]+)","captures":{"1":{"name":"keyword.control.firrtl"},"2":{"name":"entity.name.class.firrtl"}}}],"beginCaptures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"storage.type.class.firrtl"},"3":{"name":"entity.name.type.firrtl"}}},"node":{"begin":"^\\s*(node)\\s+(\\w+|`[\\w]+`)\\s*=","end":"$","patterns":[{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"port":{"begin":"^\\s*(input|output)\\s+(\\w+|`[\\w]+`)\\s*:","end":"$","patterns":[{"include":"#type"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"storage.type.port.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"property_expression":{"patterns":[{"include":"#property_literal"},{"include":"#property_primop"},{"include":"#expression_reference"}]},"property_literal":{"match":"\\b(Integer)\\s*\\(\\s*([+-]?\\d+)\\s*\\)","captures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"constant.numeric.firrtl"}}},"property_primop":{"begin":"\\b(integer_add|integer_mul|integer_shl|integer_shr|list_concat|List)\\s*(?:\u003c([^\u003e]+)\u003e)?\\s*\\(","end":"\\)","patterns":[{"include":"#property_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.operator.firrtl"},"2":{"patterns":[{"include":"#type_property"}]}}},"statement":{"patterns":[{"include":"#statement_when"},{"include":"#statement_else"},{"include":"#statement_match"},{"include":"#statement_match_case"},{"include":"#statement_printf"},{"include":"#statement_fprintf"},{"include":"#statement_fflush"},{"include":"#statement_verification"},{"include":"#statement_stop"},{"include":"#statement_force"},{"include":"#statement_layerblock"},{"include":"#statement_intrinsic"},{"include":"#statement_connectlike"},{"include":"#statement_memory_config"},{"include":"#statement_extmodule_config"},{"include":"#statement_skip"}]},"statement_connectlike":{"patterns":[{"begin":"^\\s*(connect|invalidate|propassign)\\s+","end":"$","patterns":[{"include":"#expression"},{"include":"#property_expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},{"begin":"^\\s*(attach)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},{"begin":"^\\s*(define)\\s+","end":"$","patterns":[{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},{"begin":"^\\s*","end":"$","patterns":[{"name":"keyword.operator.legacy.firrtl","match":"(\u003c=)"},{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}]},{"begin":"^\\s*","end":"$","patterns":[{"name":"keyword.operator.legacy.firrtl","match":"(\u003c-)"},{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}]},{"match":"^\\s*(.+?)\\s+(is)\\s+(invalid)\\b","captures":{"1":{"patterns":[{"include":"#expression"}]},"2":{"name":"keyword.operator.legacy.firrtl"},"3":{"name":"keyword.operator.legacy.firrtl"}}}]},"statement_else":{"patterns":[{"begin":"^\\s*(else)\\s+(when)\\s+","end":"$","patterns":[{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.control.firrtl"},"2":{"name":"keyword.control.firrtl"}}},{"match":"^\\s*(else)\\s*:","captures":{"1":{"name":"keyword.control.firrtl"}}}]},"statement_extmodule_config":{"patterns":[{"match":"^\\s*(defname)\\s*=\\s*(\\w+|`[\\w]+`)","captures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},{"begin":"^\\s*(parameter)\\s+(\\w+|`[\\w]+`)\\s*=","end":"$","patterns":[{"include":"#format_string"},{"name":"constant.numeric.firrtl","match":"\\d+"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"variable.parameter.firrtl"}}}]},"statement_fflush":{"begin":"^\\s*(fflush)\\s*\\(","end":"\\)(?:\\s*:\\s*(\\w+|`[\\w]+`))?","patterns":[{"include":"#expression"},{"include":"#format_string"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}},"endCaptures":{"1":{"name":"entity.name.type.firrtl"}}},"statement_force":{"begin":"^\\s*(force|force_initial|release|release_initial)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},"statement_fprintf":{"begin":"^\\s*(fprintf)\\s*\\(","end":"\\)(?:\\s*:\\s*(\\w+|`[\\w]+`))?","patterns":[{"include":"#expression"},{"include":"#format_string"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}},"endCaptures":{"1":{"name":"entity.name.type.firrtl"}}},"statement_intrinsic":{"name":"meta.intrinsic.firrtl","begin":"^\\s*intrinsic\\s*\\(","end":"\\)","patterns":[{"include":"#intrinsic_spec"},{"include":"#expression"},{"include":"#comment"}]},"statement_layerblock":{"match":"^\\s*(layerblock)\\s+([\\w.]+|`[\\w]+`)\\s*:","captures":{"1":{"name":"keyword.declaration.firrtl"},"2":{"name":"entity.name.class.firrtl"}}},"statement_match":{"begin":"^\\s*(match)\\s+","end":"$","patterns":[{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.control.firrtl"}}},"statement_match_case":{"match":"^\\s*(\\w+|`[\\w]+`)(?:\\s*\\(\\s*(\\w+|`[\\w]+`)\\s*\\))?\\s*:","captures":{"1":{"name":"variable.other.firrtl"},"2":{"name":"variable.parameter.firrtl"}}},"statement_memory_config":{"patterns":[{"begin":"^\\s*(data-type)\\s*=\u003e","end":"$","patterns":[{"include":"#type"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},{"match":"^\\s*(depth|reader|writer|readwriter|read-latency|write-latency)\\s*=\u003e\\s*(\\w+|`[\\w]+`)","captures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"constant.numeric.firrtl"}}},{"match":"^\\s*(read-under-write)\\s*=\u003e\\s*(old|new|undefined)","captures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"keyword.other.firrtl"}}}]},"statement_printf":{"begin":"^\\s*(printf)\\s*\\(","end":"\\)(?:\\s*:\\s*(\\w+|`[\\w]+`))?","patterns":[{"include":"#expression"},{"include":"#format_string"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}},"endCaptures":{"1":{"name":"entity.name.type.firrtl"}}},"statement_skip":{"match":"^\\s*(skip)\\b","captures":{"1":{"name":"keyword.other.firrtl"}}},"statement_stop":{"begin":"^\\s*(stop)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}}},"statement_verification":{"begin":"^\\s*(assert|assume|cover)\\s*\\(","end":"\\)(?:\\s*:\\s*(\\w+|`[\\w]+`))?","patterns":[{"include":"#expression"},{"include":"#format_string"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"}},"endCaptures":{"1":{"name":"entity.name.type.firrtl"}}},"statement_when":{"begin":"^\\s*(when)\\s+","end":"$","patterns":[{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.control.firrtl"}}},"type":{"patterns":[{"include":"#type_property"},{"include":"#type_probe"},{"include":"#type_enum"},{"include":"#type_bundle"},{"include":"#type_ground_nowidth"},{"include":"#type_ground_width"},{"include":"#type_alias_ref"}]},"type_alias_ref":{"name":"entity.name.type.firrtl","match":"\\b(\\w+|`[\\w]+`)\\b"},"type_bundle":{"name":"meta.type.bundle.firrtl","begin":"(const\\s+)?\\{(?!\\|)","end":"\\}","patterns":[{"include":"#type_bundle_field"},{"include":"#type"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.modifier.firrtl"}}},"type_bundle_field":{"match":"(flip\\s+)?(\\w+|`[\\w]+`)\\s*:","captures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"variable.other.firrtl"}}},"type_decl":{"begin":"^\\s*(type)\\s+(\\w+|`[\\w]+`)\\s*=","end":"$","patterns":[{"include":"#type"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"keyword.other.firrtl"},"2":{"name":"entity.name.type.firrtl"}}},"type_enum":{"name":"meta.type.enum.firrtl","begin":"\\{\\|","end":"\\|\\}","patterns":[{"include":"#type_enum_variant"},{"include":"#type"},{"include":"#comment"}]},"type_enum_variant":{"match":"(\\w+|`[\\w]+`)\\s*(:)?","captures":{"1":{"name":"variable.other.firrtl"},"2":{"name":"punctuation.separator.firrtl"}}},"type_ground_nowidth":{"match":"(const\\s+)?(Clock|Reset|AsyncReset)(?:\\[(\\d+)\\])?","captures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"storage.type.firrtl"},"3":{"name":"constant.numeric.firrtl"}}},"type_ground_width":{"match":"(const\\s+)?([US]Int|Analog)(?:\u003c(\\d+)\u003e)?(?:\\[(\\d+)\\])?","captures":{"1":{"name":"storage.modifier.firrtl"},"2":{"name":"storage.type.firrtl"},"3":{"name":"constant.numeric.firrtl"},"4":{"name":"constant.numeric.firrtl"}}},"type_probe":{"begin":"((RW)?Probe)\\s*\u003c","end":"\u003e","patterns":[{"match":",\\s*([\\w.]+)","captures":{"1":{"name":"entity.name.type.firrtl"}}},{"include":"#type"}],"beginCaptures":{"1":{"name":"storage.type.firrtl"}}},"type_property":{"patterns":[{"name":"storage.type.firrtl","match":"\\b(Integer)\\b"},{"begin":"\\b(List)\\s*\u003c","end":"\u003e","patterns":[{"include":"#type_property"}],"beginCaptures":{"1":{"name":"storage.type.firrtl"}}}]},"version":{"name":"comment.line.character.firrtl","match":"FIRRTL\\s+version\\s+\\d+\\.\\d+\\.\\d+"},"wire_or_register":{"begin":"^\\s*(wire|reg|regreset)\\s+(\\w+|`[\\w]+`)\\s*:","end":"$","patterns":[{"include":"#type"},{"include":"#expression"},{"include":"#comment"},{"include":"#file_info"}],"beginCaptures":{"1":{"name":"storage.type.firrtl"},"2":{"name":"entity.name.type.firrtl"}}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"FlatBuffers","scopeName":"source.flatbuffers","patterns":[{"include":"#include"},{"include":"#namespace_decl"},{"include":"#type_decl"},{"include":"#enum_decl"},{"include":"#root_decl"},{"include":"#file_ext_ident_decl"},{"include":"#attribute_decl"},{"include":"#rpc_decl"},{"include":"#object"},{"include":"#comment"}],"repository":{"attribute_decl":{"name":"meta.attribute-declaration.flatbuffers","begin":"\\b(attribute)\\b\\s+","end":";","patterns":[{"include":"#ident"},{"begin":"\"","end":"\"","patterns":[{"include":"#ident"}],"beginCaptures":{"0":{"name":"support.other.flatbuffers"}},"endCaptures":{"0":{"name":"support.other.flatbuffers"}}}],"beginCaptures":{"1":{"name":"keyword.other.attribute.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"comment":{"name":"meta.comment.flatbuffers","patterns":[{"name":"comment.block.flatbuffers","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.flatbuffers"}}},{"name":"comment.line.triple-slash.documentation.flatbuffers","begin":"///","end":"$\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.flatbuffers"}}},{"name":"comment.line.double-slash.flatbuffers","begin":"//","end":"$\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.flatbuffers"}}}]},"enum_decl":{"name":"meta.enum-declaration.flatbuffers","begin":"\\b(enum)|(union)\\b\\s+","end":"(?\u003c=})","patterns":[{"include":"#comment"},{"include":"#metadata"},{"include":"#type"},{"include":"#ident"},{"name":"punctuation.separator.colon.flatbuffers","match":":"},{"name":"meta.block.flatbuffers","begin":"{","end":"}","patterns":[{"include":"#comment"},{"include":"#metadata"},{"include":"#integer_constant"},{"include":"#type"},{"include":"#ident"},{"name":"keyword.operator.assignment.flatbuffers","match":"="},{"name":"punctuation.separator.colon.flatbuffers","match":":"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.flatbuffers"}}}],"beginCaptures":{"1":{"name":"keyword.other.enum.flatbuffers"},"2":{"name":"keyword.other.union.flatbuffers"}}},"field_decl":{"name":"meta.field-declaration.flatbuffers","begin":"([a-zA-Z_][a-zA-Z0-9_]*)\\s*(:)","end":";","patterns":[{"include":"#single_value"},{"include":"#type"},{"name":"keyword.operator.assignment.flatbuffers","match":"="},{"include":"#metadata"}],"beginCaptures":{"1":{"name":"variable.other.member.flatbuffers"},"2":{"name":"punctuation.separator.colon.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"file_ext_ident_decl":{"begin":"\\b(file_extension)|(file_identifier)\\b\\s+","end":";","patterns":[{"include":"#string_constant"}],"beginCaptures":{"1":{"name":"keyword.control.file-extension.flatbuffers"},"2":{"name":"keyword.control.file-identifier.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"float_constant":{"name":"meta.float-constant.flatbuffers","patterns":[{"name":"constant.numeric.float.decimal.flatbuffers","match":"([-+])?(([.][0-9]+)|([0-9]+[.][0-9]*))([eE][-+]?[0-9]+)?","captures":{"1":{"name":"keyword.operator.arithmetic.flatbuffers"}}},{"name":"constant.numeric.float.hexadecimal.flatbuffers","match":"([-+])?(0[xX])(([.][0-9a-fA-F]+)|([0-9a-fA-F]+[.][0-9a-fA-F]*))([pP][-+]?[0-9]+)","captures":{"1":{"name":"keyword.operator.arithmetic.flatbuffers"},"2":{"name":"storage.type.number.flatbuffers"}}},{"name":"constant.numeric.float.other.flatbuffers","match":"([-+])?(nan|inf|infinity)","captures":{"1":{"name":"keyword.operator.arithmetic.flatbuffers"}}}]},"ident":{"name":"entity.name.class.flatbuffers","match":"[a-zA-Z_][a-zA-Z0-9_]*"},"include":{"name":"meta.import.flatbuffers","begin":"\\b(include)|(native_include)\\b\\s+","end":";","patterns":[{"include":"#string_constant"}],"beginCaptures":{"1":{"name":"keyword.control.import.flatbuffers"},"2":{"name":"keyword.control.native-import.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"integer_constant":{"name":"meta.integer-constant.flatbuffers","patterns":[{"name":"constant.numeric.integer.hexadecimal.flatbuffers","match":"([-+])?(0[xX])[0-9a-fA-F]+","captures":{"1":{"name":"keyword.operator.arithmetic.flatbuffers"},"2":{"name":"storage.type.number.flatbuffers"}}},{"name":"constant.numeric.integer.decimal.flatbuffers","match":"([-+])?[0-9]+","captures":{"1":{"name":"keyword.operator.arithmetic.flatbuffers"}}}]},"metadata":{"name":"meta.metadata.flatbuffers","begin":"\\(","end":"\\)","patterns":[{"include":"#comment"},{"include":"#single_value"},{"name":"keyword.control.attribute.flatbuffers","match":"[a-zA-Z_][a-zA-Z0-9_]*"},{"name":"punctuation.separator.comma.flatbuffers","match":","},{"name":"punctuation.separator.colon.flatbuffers","match":":"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.flatbuffers"}}},"namespace_decl":{"name":"meta.namespace-declaration.flatbuffers","begin":"\\b(namespace)\\b\\s+","end":";","patterns":[{"include":"#ident"},{"name":"punctuation.accessor.flatbuffers","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"root_decl":{"name":"meta.root-type-declaration.flatbuffers","begin":"\\b(root_type)\\b\\s+","end":";","patterns":[{"include":"#metadata"},{"include":"#ident"}],"beginCaptures":{"1":{"name":"keyword.control.root-type.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"rpc_decl":{"name":"meta.rpc-service-declaration.flatbuffers","begin":"\\b(rpc_service)\\b\\s+","end":"(?\u003c=})","patterns":[{"include":"#comment"},{"include":"#ident"},{"name":"meta.block.flatbuffers","begin":"{","end":"}","patterns":[{"include":"#comment"},{"include":"#rpc_method_member"},{"include":"#ident"},{"include":"#metadata"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.flatbuffers"}}}],"beginCaptures":{"1":{"name":"keyword.other.rpc-service.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.terminator.flatbuffers"}}},"rpc_method_member":{"begin":"([a-zA-Z_][a-zA-Z0-9_]*)(\\()([a-zA-Z_][a-zA-Z0-9_]*)(\\))(:)","end":"(?\u003c=:)","beginCaptures":{"1":{"name":"variable.other.member.flatbuffers"},"2":{"name":"punctuation.parenthesis.open.flatbuffers"},"3":{"name":"entity.name.class.flatbuffers"},"4":{"name":"punctuation.parenthesis.close.flatbuffers"},"5":{"name":"punctuation.separator.colon.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.separator.colon.flatbuffers"}}},"scalar":{"name":"meta.scalar.flatbuffers","patterns":[{"name":"constant.language.flatbuffers","match":"\\b(true|false)\\b"},{"include":"#float_constant"},{"include":"#integer_constant"}]},"single_value":{"name":"meta.single-value.flatbuffers","patterns":[{"include":"#scalar"},{"include":"#string_constant"}]},"string_constant":{"name":"string.quoted.double.flatbuffers","match":"(\")((?:[^\"]|\\\")*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.flatbuffers"},"2":{"name":"string.quoted.double.flatbuffers"},"3":{"name":"punctuation.definition.string.end.flatbuffers"}}},"type":{"name":"meta.type.flatbuffers","patterns":[{"name":"storage.type.flatbuffers","match":"\\b(bool|byte|ubyte|short|ushort|int|uint|float|long|ulong|double|int8|uint8|int16|uint16|int32|uint32|int64|uint64|float32|float64|string)\\b"},{"include":"#ident"},{"name":"meta.array.flatbuffers","begin":"\\[","end":"\\]","patterns":[{"include":"#type"},{"include":"#scalar"},{"name":"punctuation.separator.array-length.flatbuffers","match":":"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.flatbuffers"}}}]},"type_decl":{"name":"meta.type-declaration.flatbuffers","begin":"\\b(table)|(struct)\\b\\s+","end":"(?\u003c=})","patterns":[{"include":"#comment"},{"include":"#metadata"},{"include":"#ident"},{"name":"meta.block.flatbuffers","begin":"{","end":"}","patterns":[{"include":"#comment"},{"include":"#field_decl"},{"include":"#metadata"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.flatbuffers"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.flatbuffers"}}}],"beginCaptures":{"1":{"name":"keyword.other.table.flatbuffers"},"2":{"name":"keyword.other.struct.flatbuffers"}}}}}
|