github-linguist 7.27.0 → 7.28.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/linguist/lex.linguist_yy.c +313 -294
- data/ext/linguist/lex.linguist_yy.h +5 -4
- data/ext/linguist/tokenizer.l +5 -2
- data/grammars/inline.edgeql.json +1 -0
- data/grammars/inline.hbs.json +1 -0
- data/grammars/inline.template.json +1 -0
- data/grammars/markdown.lean4.codeblock.json +1 -0
- data/grammars/markdown.move.codeblock.json +1 -0
- data/grammars/mdx.LANGUAGE.codeblock.json +1 -0
- data/grammars/source.al.json +1 -1
- data/grammars/source.bicep.json +1 -1
- data/grammars/source.cds.json +1 -1
- data/grammars/source.cobol.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.dart.json +1 -1
- data/grammars/source.denizenscript.json +1 -1
- data/grammars/source.dm.json +1 -1
- data/grammars/source.earthfile.json +1 -1
- data/grammars/source.edgeql.json +1 -0
- data/grammars/source.fsharp.json +1 -1
- data/grammars/source.gdresource.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.genero-4gl.json +1 -0
- data/grammars/source.genero-per.json +1 -0
- data/grammars/source.gjs.json +1 -0
- data/grammars/source.gsc.json +1 -1
- data/grammars/source.gts.json +1 -0
- data/grammars/source.hcl.json +1 -0
- data/grammars/source.hcl.terraform.json +1 -0
- data/grammars/source.ice.json +1 -0
- data/grammars/source.julia.json +1 -1
- data/grammars/source.kotlin.json +1 -1
- data/grammars/source.lean4.json +1 -0
- data/grammars/source.lean4.markdown.json +1 -0
- data/grammars/source.matlab.json +1 -1
- data/grammars/source.mdx.json +1 -1
- data/grammars/source.meta-info.json +1 -1
- data/grammars/source.nasal.json +1 -1
- data/grammars/source.nim.json +1 -1
- data/grammars/source.nushell.json +1 -1
- data/grammars/source.odin.json +1 -1
- data/grammars/source.praat.json +1 -0
- data/grammars/source.ql.json +1 -1
- data/grammars/source.raku.json +1 -1
- data/grammars/source.rego.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.rust.json +1 -1
- data/grammars/source.sentinel.json +1 -0
- data/grammars/source.slice.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.textgrid.json +1 -0
- data/grammars/source.toit.json +1 -0
- data/grammars/source.vba.json +1 -1
- data/grammars/source.viml.json +1 -1
- data/grammars/text.adblock.json +1 -1
- data/grammars/text.html.ember-handlebars.json +1 -0
- data/grammars/text.html.statamic.json +1 -1
- data/grammars/text.md.json +1 -1
- data/grammars/text.tex.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/generated.rb +4 -4
- data/lib/linguist/heuristics.yml +6 -0
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +63 -9
- data/lib/linguist/samples.json +1 -1
- metadata +23 -6
- data/grammars/govulncheck.json +0 -1
- data/grammars/source.dmf.json +0 -1
- data/grammars/source.genero-forms.json +0 -1
- data/grammars/source.genero.json +0 -1
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(library|import|part 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":"///","while":"^\\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)\\b(?!\\$)"},{"name":"constant.numeric.dart","match":"(?\u003c!\\$)\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b(?!\\$)"},{"include":"#class-identifier"},{"include":"#function-identifier"}]},"dartdoc":{"patterns":[{"match":"(\\[.*?\\])","captures":{"0":{"name":"variable.name.source.dart"}}},{"match":"^ {4,}(?![ \\*]).*","captures":{"0":{"name":"variable.name.source.dart"}}},{"contentName":"variable.other.source.dart","begin":"```.*?$","end":"```"},{"match":"(
|
1
|
+
{"name":"Dart","scopeName":"source.dart","patterns":[{"name":"meta.preprocessor.script.dart","match":"^(#!.*)$"},{"name":"meta.declaration.dart","begin":"^\\w*\\b(library|import|part 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":"///","while":"^\\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)\\b(?!\\$)"},{"name":"constant.numeric.dart","match":"(?\u003c!\\$)\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b(?!\\$)"},{"include":"#class-identifier"},{"include":"#function-identifier"}]},"dartdoc":{"patterns":[{"match":"(\\[.*?\\])","captures":{"0":{"name":"variable.name.source.dart"}}},{"match":"^ {4,}(?![ \\*]).*","captures":{"0":{"name":"variable.name.source.dart"}}},{"contentName":"variable.other.source.dart","begin":"```.*?$","end":"```"},{"match":"(`[^`]+?`)","captures":{"0":{"name":"variable.other.source.dart"}}},{"match":"(\\* (( ).*))$","captures":{"2":{"name":"variable.other.source.dart"}}}]},"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"}]}}}]},"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|return|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.control.new.dart","match":"(?\u003c!\\$)\\b(new)\\b(?!\\$)"},{"name":"keyword.declaration.dart","match":"(?\u003c!\\$)\\b(abstract|sealed|base|interface|class|enum|extends|extension type|extension|external|factory|implements|get(?!\\()|mixin|native|operator|set(?!\\()|typedef|with|covariant)\\b(?!\\$)"},{"name":"storage.modifier.dart","match":"(?\u003c!\\$)\\b(static|final|const|required|late)\\b(?!\\$)"},{"name":"storage.type.primitive.dart","match":"(?\u003c!\\$)\\b(?:void|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":"string.interpolated.expression.dart","match":"\\$([a-zA-Z0-9_]+)","captures":{"1":{"name":"variable.parameter.dart"}}},{"name":"string.interpolated.expression.dart","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#constants-and-special-vars"},{"include":"#strings"},{"name":"variable.parameter.dart","match":"[a-zA-Z0-9_]+"}]},{"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":"DenizenScript","scopeName":"source.denizenscript","patterns":[{"include":"#comments"},{"include":"#todo_comments"},{"include":"#header_comments"},{"include":"#keys"},{"include":"#commands"},{"include":"#double_quotes"},{"include":"#single_quotes"},{"include":"#tags"},{"include":"#def_brackets"},{"include":"#not_script_keys"}],"repository":{"commands":{"begin":"^\\s*(-)\\s([^\\s\u003c\u003e\"':]+)","end":"\\s","captures":{"1":{"name":"operator.dash.denizenscript"},"2":{"name":"entity.other.command.denizenscript"}}},"comments":{"name":"comment.line.number-sign.denizenscript","begin":"(?i)^\\s*#(?!\\s*todo|(?:\\s*(?:\\||\\+|=|#|_|@|\\/)))","end":"\\n"},"def_brackets":{"name":"entity.name.tag.def_brackets.denizenscript","begin":"(?\u003c=\\w|\u003c|\u0026)\\[","end":"\\]","patterns":[{"include":"#tags"},{"include":"#def_brackets"}]},"double_quotes":{"name":"string.quoted.double.denizenscript","begin":"(?\u003c=\\s)\"","end":"(?:\"
|
1
|
+
{"name":"DenizenScript","scopeName":"source.denizenscript","patterns":[{"include":"#comments"},{"include":"#todo_comments"},{"include":"#header_comments"},{"include":"#keys"},{"include":"#commands"},{"include":"#double_quotes"},{"include":"#single_quotes"},{"include":"#tags"},{"include":"#def_brackets"},{"include":"#not_script_keys"}],"repository":{"commands":{"begin":"^\\s*(-)\\s([^\\s\u003c\u003e\"':]+)","end":"\\s","captures":{"1":{"name":"operator.dash.denizenscript"},"2":{"name":"entity.other.command.denizenscript"}}},"comments":{"name":"comment.line.number-sign.denizenscript","begin":"(?i)^\\s*#(?!\\s*todo|(?:\\s*(?:\\||\\+|=|#|_|@|\\/)))","end":"\\n"},"def_brackets":{"name":"entity.name.tag.def_brackets.denizenscript","begin":"(?\u003c=\\w|\u003c|\u0026)\\[","end":"\\]","patterns":[{"include":"#tags"},{"include":"#def_brackets"}]},"double_quotes":{"name":"string.quoted.double.denizenscript","begin":"(?\u003c=\\s)\"","end":"(?:\")","patterns":[{"include":"#tags"},{"include":"#def_brackets"}]},"header_comments":{"name":"keyword.header-comment.denizenscript","begin":"^\\s*#\\s*(?:\\||\\+|=|#|_|@|\\/)","end":"\\n"},"keys":{"begin":"(?i)(^(?!^\\s*-|#|\\n|^\\s*(?:interact scripts|default constants|data|constants|text|lore|aliases|slots|enchantments|input|description)(?=:\\n)).*?)(?=(:)\\s)","end":"\\s","beginCaptures":{"1":{"name":"markup.heading.key.denizenscript"},"2":{"name":"operator.colon.denizenscript"}}},"not_script_keys":{"begin":"(?i)(^(?!.*- |#|\\n).*(?=interact scripts|default constants|data|constants|text|lore|aliases|slots|enchantments|input|description).*)(?=(:)\\n)","end":"^(?!.*- |\\n|\\s*#)","patterns":[{"include":"#tags"},{"include":"#def_brackets"},{"include":"#comments"},{"include":"#todo_comments"},{"include":"#header_comments"}],"beginCaptures":{"1":{"name":"markup.heading.not_script_key.denizenscript"},"2":{"name":"operator.colon.denizenscript"}}},"single_quotes":{"name":"string.quoted.single.denizenscript","begin":"(?\u003c=\\s)'","end":"(?:')","patterns":[{"include":"#tags"},{"include":"#def_brackets"}]},"tags":{"name":"constant.language.tag.denizenscript","begin":"\u003c(?!-|\\s|=)","end":"\u003e","patterns":[{"include":"#tags"},{"include":"#def_brackets"}]},"todo_comments":{"name":"variable.todo-comment.denizenscript","begin":"(?i)^\\s*#\\s*(?:todo)","end":"\\n"}}}
|
data/grammars/source.dm.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Dream Maker","scopeName":"source.dm","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-other"},{"include":"#comments"},{"name":"meta.initialization.dm","match":"(?x)\n(?:\\b(var))[\\/ ]\n(?:(static|global|tmp|const)\\/)?\n(?:(datum|atom(?:\\/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\/)?\n(?:\n\t([a-zA-Z0-9_\\-$]*)\\/\n)*\n\n([A-Za-z0-9_$]*)\\b","captures":{"1":{"name":"storage.type.dm"},"2":{"name":"storage.modifier.dm"},"3":{"name":"storage.type.dm"},"5":{"name":"variable.other.dm"}}},{"name":"constant.numeric.dm","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"},{"name":"keyword.control.dm","match":"\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while)\\b"},{"name":"keyword.other.dm","match":"\\b(del|new)\\b"},{"name":"storage.type.dm","match":"\\b(proc|verb|datum|atom(/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\b"},{"name":"storage.modifier.dm","match":"\\b(as|const|global|set|static|tmp)\\b"},{"name":"variable.language.dm","match":"\\b(usr|world|src|args)\\b"},{"name":"keyword.operator.dm","match":"(\\?|(\u003e|\u003c)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|\u003e\u003e|\u003c\u003c|=(=)?|!(=)?|\u003c\u003e|\u0026|\u0026\u0026|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)"},{"name":"constant.language.dm","match":"\\b([A-Z_][A-Z_0-9]*)\\b"},{"name":"constant.language.dm","match":"\\bnull\\b"},{"name":"string.quoted.triple.dm","begin":"{\"","end":"\"}","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"string.quoted.double.dm","begin":"\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"string.quoted.single.dm","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"meta.preprocessor.macro.dm","begin":"(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g\u003cid\u003e \\s* # first argument\n\t\t\t((,) \\s* \\g\u003cid\u003e \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.control.directive.define.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"entity.name.function.preprocessor.dm"},"5":{"name":"punctuation.definition.parameters.begin.dm"},"6":{"name":"variable.parameter.preprocessor.dm"},"8":{"name":"punctuation.separator.parameters.dm"},"9":{"name":"punctuation.definition.parameters.end.dm"}}},{"name":"meta.preprocessor.macro.dm","begin":"(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.control.directive.define.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"variable.other.preprocessor.dm"}}},{"name":"meta.preprocessor.diagnostic.dm","begin":"^\\s*(#\\s*(error|warn))\\b","end":"$","patterns":[{"name":"punctuation.separator.continuation.dm","match":"(?\u003e\\\\\\s*\\n)"}],"captures":{"1":{"name":"keyword.control.import.error.dm"}}},{"name":"meta.preprocessor.dm","begin":"^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"punctuation.separator.continuation.dm","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"keyword.control.directive.$5.dm"},"4":{"name":"punctuation.definition.directive.dm"}}},{"include":"#block"},{"name":"meta.function.dm","begin":"(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w) # or word + space before name\n\t\t\t\t\t\t\t | (?= \\s*[A-Za-z_] ) (?\u003c!\u0026\u0026) (?\u003c=[*\u0026\u003e]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()","end":"(?\u003c=\\})|(?=#)|(;)?","patterns":[{"include":"#comments"},{"include":"#parens"},{"name":"storage.modifier.dm","match":"\\bconst\\b"},{"include":"#block"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.dm"},"3":{"name":"entity.name.function.dm"},"4":{"name":"punctuation.definition.parameters.dm"}}}],"repository":{"access":{"name":"variable.other.dot-access.dm","match":"\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()"},"block":{"name":"meta.block.dm","begin":"\\{","end":"\\}","patterns":[{"include":"#block_innards"}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-other-block"},{"include":"#access"},{"name":"meta.function-call.dm","match":"(?x) (?: (?= \\s ) (?:(?\u003c=else|new|return) | (?\u003c!\\w)) (\\s+))?\n\t\t\t(\\b\n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()","captures":{"1":{"name":"punctuation.whitespace.function-call.leading.dm"},"2":{"name":"support.function.any-method.dm"},"3":{"name":"punctuation.definition.parameters.dm"}}},{"include":"#block"},{"include":"$base"}]},"comments":{"patterns":[{"name":"comment.block.dm","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.dm"}}},{"name":"comment.block.dm","begin":"/\\*","end":"\\*/","patterns":[{"include":"#comments"}],"captures":{"0":{"name":"punctuation.definition.comment.dm"}}},{"name":"invalid.illegal.stray-comment-end.dm","match":"\\*/.*\\n"},{"name":"comment.line.banner.dm","match":"^// =(\\s*.*?)\\s*=\\s*$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.dm"}}},{"name":"comment.line.double-slash.dm","begin":"//","end":"$\\n?","patterns":[{"name":"punctuation.separator.continuation.dm","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.dm"}}}]},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b.*$","patterns":[{"include":"#disabled"}]},"parens":{"name":"meta.parens.dm","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}]},"preprocessor-rule-disabled":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b.*$)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"name":"comment.block.preprocessor.if-branch","end":"(?=^\\s*#\\s*(else|endif)\\b.*$)","patterns":[{"include":"#disabled"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-disabled-block":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b.*$)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"name":"comment.block.preprocessor.if-branch.in-block","end":"(?=^\\s*#\\s*(else|endif)\\b.*$)","patterns":[{"include":"#disabled"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-enabled":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b.*$)","patterns":[{"include":"#disabled"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b.*$)","patterns":[{"include":"$base"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-enabled-block":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch.in-block","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b.*$)","patterns":[{"include":"#disabled"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b.*$)","patterns":[{"include":"#block_innards"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-other":{"begin":"^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*((#\\s*(endif))\\b).*$","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.dm"}}},"preprocessor-rule-other-block":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*(#\\s*(endif)\\b).*$","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.dm"}}},"string_embedded_expression":{"patterns":[{"name":"string.interpolated.dm","begin":"(?\u003c!\\\\)\\[","end":"\\]","patterns":[{"include":"$self"}]}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.dm","match":"(?x)\n\\\\\n(\n\th(?:(?:er|im)self|ers|im)\n\t|([tTsS]?he) # Weird regex to match The, the, She, she and he at once.\n\t|He\n\t|[Hh]is\n\t|[aA]n?\n\t|(?:im)?proper\n\t|\\.\\.\\.\n\t|(?:icon|ref|[Rr]oman)(?=\\[) # Macros which need a [] after them.\n\t|[s\u003c\u003e\"n\\n \\[]\n)"},{"name":"invalid.illegal.unknown-escape.dm","match":"\\\\."}]}}}
|
1
|
+
{"name":"DreamMaker","scopeName":"source.dm","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-other"},{"include":"#comments"},{"name":"meta.initialization.dm","match":"\\b(var)[\\/ ](?:(static|global|tmp|const)\\/)?(?:(area|atom(?:/movable)?|client|database(?:/query)?|datum|exception|generator|icon|image|list|matrix|mob|mutable_appearance|obj|particles|regex|savefile|sound|turf|world)\\/)?(?:([a-zA-Z0-9_\\-$]*)\\/)*([A-Za-z0-9_$]*)\\b","captures":{"1":{"name":"storage.type.dm"},"2":{"name":"storage.modifier.dm"},"3":{"name":"support.class.dm"},"5":{"name":"variable.other.dm"}}},{"name":"constant.numeric.dm","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"},{"name":"keyword.control.dm","match":"\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while|try|catch|throw)\\b"},{"name":"keyword.other.dm","match":"\\b(del|new)\\b"},{"name":"storage.type.dm","match":"\\b(proc|verb|operator)\\b"},{"name":"storage.modifier.dm","match":"\\b(as|const|global|set|static|tmp)\\b"},{"match":"(/)(area|atom(/movable)?|client|database(/query)?|datum|exception|generator|icon|image|list|matrix|mob|mutable_appearance|obj|particles|regex|savefile|sound|turf|world)\\b","captures":{"1":{"name":"keyword.operator.dm"},"2":{"name":"support.class.dm"}}},{"match":"(\\(|,)\\s*(area|atom(/movable)?|client|database(/query)?|datum|exception|generator|icon|image|list|matrix|mob|mutable_appearance|obj|particles|regex|savefile|sound|turf|world)(?=/)","captures":{"1":{"name":"keyword.operator.dm"},"2":{"name":"support.class.dm"}}},{"match":"\\b(list|call|input|locate|pick|arglist|CRASH|ASSERT|EXCEPTION|REGEX_QUOTE|REGEX_QUOTE_REPLACEMENT)(?\u003e\\s*\\()","captures":{"1":{"name":"support.function.dm"}}},{"name":"variable.language.dm","match":"\\b(usr|world|src|args|vars)\\b"},{"name":"keyword.operator.dm","match":"(\\?|(\u003e|\u003c)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|\u003e\u003e|\u003c\u003c|=(=)?|!(=)?|\u003c\u003e|\u0026|\u0026\u0026|\\^|\\||\\|\\||\\b(to|in|step)\\b)"},{"name":"constant.language.dm","match":"\\b(DM_BUILD|DM_VERSION|__FILE__|__LINE__|__MAIN__|DEBUG|FILE_DIR|TRUE|FALSE)\\b"},{"name":"constant.language.dm","match":"\\b([A-Z_][A-Z_0-9]+)\\b"},{"name":"constant.language.dm","match":"\\bnull\\b"},{"name":"string.quoted.other.dm","begin":"@{\"","end":"\"}","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"string.unquoted.dm","begin":"@\\(([^)]+)\\)","end":"\\1","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"string.quoted.other.dm","begin":"@(.)","end":"\\1|$","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"meta.interpstring.dm","begin":"({\")","end":"(\"})","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"},{"name":"string.quoted.triple.dm","match":"."}],"beginCaptures":{"0":{"name":"string.quoted.triple.dm"},"1":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"string.quoted.triple.dm"},"1":{"name":"punctuation.definition.string.end.dm"}}},{"name":"meta.interpstring.dm","begin":"(\")","end":"(\"|[^\\\\]$)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"},{"name":"string.quoted.double.dm","match":"."}],"beginCaptures":{"0":{"name":"string.quoted.double.dm"},"1":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"string.quoted.double.dm"},"1":{"name":"punctuation.definition.string.end.dm"}}},{"name":"string.quoted.single.dm","begin":"'","end":"'|[^\\\\]$","patterns":[{"name":"constant.character.escape.dm","match":"\\\\(.|\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"meta.preprocessor.macro.dm","begin":"(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g\u003cid\u003e \\s* # first argument\n\t\t\t((,) \\s* \\g\u003cid\u003e \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.control.directive.define.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"entity.name.function.preprocessor.dm"},"5":{"name":"punctuation.definition.parameters.begin.dm"},"6":{"name":"variable.parameter.preprocessor.dm"},"8":{"name":"punctuation.separator.parameters.dm"},"9":{"name":"punctuation.definition.parameters.end.dm"}}},{"name":"meta.preprocessor.macro.dm","begin":"(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.control.directive.define.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"variable.other.preprocessor.dm"}}},{"name":"meta.preprocessor.diagnostic.dm","begin":"^\\s*(#\\s*(error|warn))\\b","end":"$","patterns":[{"name":"punctuation.separator.continuation.dm","match":"(?\u003e\\\\\\s*\\n)"}],"captures":{"1":{"name":"keyword.control.import.error.dm"}}},{"name":"meta.preprocessor.dm","begin":"^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"punctuation.separator.continuation.dm","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"keyword.control.directive.$5.dm"},"4":{"name":"punctuation.definition.directive.dm"}}},{"include":"#block"},{"name":"meta.function.dm","begin":"(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w) # or word + space before name\n\t\t\t\t\t\t\t | (?= \\s*[A-Za-z_] ) (?\u003c!\u0026\u0026) (?\u003c=[*\u0026\u003e]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()","end":"(?\u003c=\\})|(?=#)|(;)?","patterns":[{"include":"#comments"},{"include":"#parens"},{"name":"storage.modifier.dm","match":"\\bconst\\b"},{"include":"#block"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.dm"},"3":{"name":"entity.name.function.dm"},"4":{"name":"punctuation.definition.parameters.dm"}}}],"repository":{"access":{"name":"variable.other.dot-access.dm","match":"\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()"},"block":{"name":"meta.block.dm","begin":"\\{","end":"\\}","patterns":[{"include":"#block_innards"}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-other-block"},{"include":"#access"},{"name":"meta.function-call.dm","match":"(?x) (?: (?= \\s ) (?:(?\u003c=else|new|return) | (?\u003c!\\w)) (\\s+))?\n\t\t\t(\\b\n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()","captures":{"1":{"name":"punctuation.whitespace.function-call.leading.dm"},"2":{"name":"support.function.any-method.dm"},"3":{"name":"punctuation.definition.parameters.dm"}}},{"include":"#block"},{"include":"$base"}]},"comments":{"patterns":[{"name":"comment.block.dm","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.dm"}}},{"name":"comment.block.dm","begin":"/\\*","end":"\\*/","patterns":[{"include":"#comments"}],"captures":{"0":{"name":"punctuation.definition.comment.dm"}}},{"name":"invalid.illegal.stray-comment-end.dm","match":"\\*/.*\\n"},{"name":"comment.line.banner.dm","match":"^// =(\\s*.*?)\\s*=\\s*$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.dm"}}},{"name":"comment.line.double-slash.dm","begin":"//","end":"[^\\\\]$","patterns":[{"name":"punctuation.separator.continuation.dm","match":"(?\u003e\\\\\\s*\\n)"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.dm"}}}]},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"}]},"parens":{"name":"meta.parens.dm","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}]},"preprocessor-rule-disabled":{"begin":"^\\s*(#(if)\\s+(0+|FALSE)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"name":"comment.block.preprocessor.if-branch","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#disabled"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-disabled-block":{"begin":"^\\s*(#(if)\\s+(0+|FALSE)\\b).*","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"name":"comment.block.preprocessor.if-branch.in-block","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#disabled"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-enabled":{"begin":"^\\s*(#(if)\\s+(0*1|TRUE)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"$base"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-enabled-block":{"begin":"^\\s*(#(if)\\s+(0*1|TRUE)\\b)","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"contentName":"comment.block.preprocessor.else-branch.in-block","begin":"^\\s*(#\\s*(else)\\b).*","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}}},{"end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#block_innards"}]}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}}},"preprocessor-rule-other":{"begin":"^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*((#\\s*(endif))\\b)","patterns":[{"include":"$base"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.dm"}}},"preprocessor-rule-other-block":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"#block_innards"}],"captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.dm"}}},"string_embedded_expression":{"patterns":[{"name":"meta.interpolation.dm","begin":"(\\[)","end":"(\\])","patterns":[{"include":"#string_embedded_expression_2"},{"include":"$base"}],"beginCaptures":{"0":{"name":"string.quoted.other.dm"},"1":{"name":"punctuation.definition.string.end.dm"}},"endCaptures":{"0":{"name":"string.quoted.other.dm"},"1":{"name":"punctuation.definition.string.begin.dm"}}}]},"string_embedded_expression_2":{"begin":"(\\[)","end":"(\\])","patterns":[{"include":"#string_embedded_expression_2"},{"include":"$base"}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.dm","match":"\\\\([Tt]he|[Aa]|[Aa]n|[Hh]e|[Ss]he|[Hh]is|him|himself|herself|hers|proper|improper|th|s|(icon|ref|[Rr]oman)(?=\\[)|\\.\\.\\.|t|n|\"|\\\\|\u003c|\u003e| |\n|\\[|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{6})"},{"name":"invalid.illegal.unknown-escape.dm","match":"\\\\."}]}}}
|
@@ -1 +1 @@
|
|
1
|
-
{"name":"Earthfile","scopeName":"source.earthfile","patterns":[{"include":"#comment"},{"include":"#constant"},{"include":"#entity"},{"include":"#keyword"},{"include":"#string"},{"include":"#variable"},{"include":"#target"},{"include":"#
|
1
|
+
{"name":"Earthfile","scopeName":"source.earthfile","patterns":[{"include":"#comment"},{"include":"#constant"},{"include":"#entity"},{"include":"#keyword"},{"include":"#string"},{"include":"#variable"},{"include":"#target"},{"include":"#function"}],"repository":{"comment":{"patterns":[{"match":"^(\\s*)((#).*$\\n?)","captures":{"1":{"name":"punctuation.whitespace.comment.leading.earthfile"},"2":{"name":"comment.line.number-sign.earthfile"},"3":{"name":"punctuation.definition.comment.earthfile"}}},{"name":"comment.line.earthfile","match":"(\\s+)((#).*$\\n?)"},{"match":"([\\\\\\s]+)((#).*$\\n?)","captures":{"2":{"name":"comment.line.number-sign.earthfile"}}}]},"constant":{"patterns":[{"name":"constant.character.escape.earthfile","match":"\\\\."},{"name":"constant.character.escape.earthfile","match":"\\\\$"},{"name":"constant.numeric.earthfile","match":"(?\u003c=EXPOSE\\s)(\\d+)"}]},"entity":{"patterns":[{"name":"entity.name.variable.artifact.earthfile","match":"([a-zA-Z0-9._\\-/:]*\\+[a-z][a-zA-Z0-9.\\-]*(/\\S*)+)"},{"name":"entity.name.type.target.earthfile","match":"([a-zA-Z0-9._\\-/:]*\\+[a-z][a-zA-Z0-9.\\-]*)"},{"name":"entity.name.function.function.earthfile","match":"([a-zA-Z0-9._\\-/:]*\\+[A-Z][a-zA-Z0-9._]*)"}]},"function":{"patterns":[{"match":"^\\s*([A-Z][a-zA-Z0-9._]*):","captures":{"1":{"name":"entity.name.function.function.earthfile"}}}]},"keyword":{"patterns":[{"name":"keyword.operator.shell.earthfile","match":"((\u0026\u0026)|(\u003e\u003e)|(\u003c\u003c)|[|;\u003e])"},{"name":"keyword.operator.assignment.earthfile","match":"([=])"},{"name":"keyword.operator.flag.earthfile","match":"(\\B(-)+[a-zA-Z0-9\\-_]+)"},{"include":"#special-method"},{"include":"#target"},{"include":"#function"}]},"special-method":{"patterns":[{"match":"^\\s*\\b(SAVE ARTIFACT)(\\b.*?\\b)(AS LOCAL)\\b","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"entity.name.variable.target.earthfile"},"3":{"name":"keyword.other.special-method.earthfile"}}},{"match":"^\\s*\\b(FOR)\\b.*?\\b(IN)\\b","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"keyword.other.special-method.earthfile"}}},{"match":"^\\s*(FROM)\\s*([^\\s#]+)","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"entity.name.type.base-image.earthfile"}}},{"match":"^\\s*(FROM|COPY|SAVE ARTIFACT|SAVE IMAGE|RUN|LABEL|EXPOSE|VOLUME|USER|ENV|ARG|BUILD|WORKDIR|ENTRYPOINT|CMD|GIT CLONE|DOCKER LOAD|DOCKER PULL|HEALTHCHECK|WITH DOCKER|END|IF|ELSE IF|ELSE|DO|COMMAND|FUNCTION|IMPORT|LOCALLY|FOR|VERSION|WAIT|TRY|FINALLY|CACHE|HOST|PIPELINE|TRIGGER|PROJECT|SET|LET|ADD|STOP SIGNAL|ONBUILD|SHELL)\\s((--\\w+(?:-\\w+)*\\s*)+)","captures":{"1":{"name":"keyword.other.special-method.earthfile"},"2":{"name":"entity.name.type.tag.earthfile"}}},{"name":"keyword.other.special-method.earthfile","match":"^\\s*HEALTHCHECK\\s+(NONE|CMD)\\s"},{"name":"keyword.other.special-method.earthfile","match":"^\\s*FROM DOCKERFILE\\s"},{"name":"keyword.other.special-method.earthfile","match":"^\\s*(FROM|COPY|SAVE ARTIFACT|SAVE IMAGE|RUN|LABEL|EXPOSE|VOLUME|USER|ENV|ARG|BUILD|WORKDIR|ENTRYPOINT|CMD|GIT CLONE|DOCKER LOAD|DOCKER PULL|HEALTHCHECK|WITH DOCKER|END|IF|ELSE IF|ELSE|DO|COMMAND|FUNCTION|IMPORT|LOCALLY|FOR|VERSION|WAIT|TRY|FINALLY|CACHE|HOST|PIPELINE|TRIGGER|PROJECT|SET|LET|ADD|STOP SIGNAL|ONBUILD|SHELL)\\s"}]},"string":{"patterns":[{"name":"string.quoted.double.earthfile","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escaped.earthfile","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.earthfile"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.earthfile"}}},{"name":"string.quoted.single.earthfile","begin":"'","end":"'","patterns":[{"name":"constant.character.escaped.earthfile","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.earthfile"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.earthfile"}}}]},"target":{"patterns":[{"match":"^\\s*([a-z]([a-zA-Z0-9.]|-)*):","captures":{"1":{"name":"entity.name.class.target.earthfile"}}}]},"variable":{"patterns":[{"name":"variable.other.earthfile","match":"\\$[a-zA-Z0-9_]+"},{"name":"variable.other.earthfile","match":"(?\u003c=\\${)([a-zA-Z0-9.\\-_]+)(?=})"},{"match":"(\\${)([a-zA-Z0-9.\\-_#]+)(})","captures":{"1":{"name":"punctuation.definition.variable.begin.earthfile"},"2":{"name":"variable.other.earthfile"},"3":{"name":"punctuation.definition.variable.end.earthfile"}}}]}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"name":"EdgeQL","scopeName":"source.edgeql","patterns":[{"include":"#all"}],"repository":{"all":{"patterns":[{"include":"#fnstatement"},{"include":"#expressions"},{"name":"punctuation.statement.delimiter.edgeql","match":"(;)"}]},"array-dimensions":{"begin":"(\\[)","end":"(\\])","patterns":[{"name":"constant.numeric.edgeql","match":"(\\d+)"},{"name":"invalid.illegal.type.edgeql","match":"\\S+"}],"beginCaptures":{"1":{"name":"punctuation.parenthesis.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.parenthesis.end.edgeql"}}},"builtin-indexes":{"name":"support.other.index.builtin.edgeql","match":"(?x) \\b(?\u003c!\\.|\\.\u003c|\\.\u003e) (\n brin | btree | gin | gist |\n hash | index | spgist\n)\\b\n"},"builtin-modules":{"name":"support.other.module.builtin.edgeql","match":"(?x) \\b(?\u003c!::|\\.|\\.\u003c|\\.\u003e)(\n cal | cfg | enc | ext |\n fts | math | pg | schema |\n std | sys\n)\\b\n"},"builtin-types":{"name":"support.type.builtin.edgeql","match":"(?x) \\b(?\u003c!\\.|\\.\u003c|\\.\u003e) (\n Base64Alphabet | BaseObject | ElasticLanguage | FreeObject |\n JsonEmpty | Language | LuceneLanguage | Object |\n PGLanguage | Weight | anycontiguous | anydiscrete |\n anyenum | anyfloat | anyint | anynumeric |\n anypoint | anyreal | anyscalar | anytype |\n array | bigint | bool | bytes |\n date_duration | datetime | decimal | document |\n duration | enum | float32 | float64 |\n int16 | int32 | int64 | json |\n local_date | local_datetime | local_time | multirange |\n range | relative_duration | sequence | str |\n tuple | uuid\n)\\b\n"},"builtins":{"patterns":[{"name":"support.function.builtin.edgeql","match":"(?x) \\b(?\u003c!\\.|\\.\u003c|\\.\u003e) (\n abs | adjacent | all |\n any | array_agg | array_fill |\n array_get | array_join | array_replace |\n array_unpack | assert | assert_distinct |\n assert_exists | assert_single | bit_and |\n bit_lshift | bit_not | bit_or |\n bit_rshift | bit_xor | bounded_above |\n bounded_below | bytes_get_bit | ceil |\n contains | count | date_get |\n datetime_current | datetime_get | datetime_of_statement |\n datetime_of_transaction | datetime_truncate | duration_get |\n duration_normalize_days | duration_normalize_hours | duration_to_seconds |\n duration_truncate | enumerate | find |\n floor | get_current_database | get_instance_name |\n get_transaction_isolation | get_version | get_version_as_str |\n json_array_unpack | json_get | json_object_pack |\n json_object_unpack | json_set | json_typeof |\n len | lg | ln |\n log | max | mean |\n min | multirange | multirange_unpack |\n overlaps | random | range |\n range_get_lower | range_get_upper | range_is_empty |\n range_is_inclusive_lower | range_is_inclusive_upper | range_unpack |\n re_match | re_match_all | re_replace |\n re_test | round | search |\n sequence_next | sequence_reset | sqrt |\n stddev | stddev_pop | str_lower |\n str_lpad | str_ltrim | str_pad_end |\n str_pad_start | str_repeat | str_replace |\n str_reverse | str_rpad | str_rtrim |\n str_split | str_title | str_trim |\n str_trim_end | str_trim_start | str_upper |\n strictly_above | strictly_below | sum |\n time_get | to_bigint | to_bytes |\n to_date_duration | to_datetime | to_decimal |\n to_duration | to_float32 | to_float64 |\n to_int16 | to_int32 | to_int64 |\n to_json | to_local_date | to_local_datetime |\n to_local_time | to_relative_duration | to_str |\n uuid_generate_v1mc | uuid_generate_v4 | var |\n var_pop | with_options\n)(?=\\s*\\()\\b\n"},{"name":"support.function.constraint.builtin.edgeql","match":"(?x) \\b(?\u003c!\\.|\\.\u003c|\\.\u003e) (\n constraint | exclusive | expression |\n len_value | max_ex_value | max_len_value |\n max_value | min_ex_value | min_len_value |\n min_value | one_of | regexp\n)\\b\n"},{"include":"#builtin-modules"},{"name":"support.other.link.builtin.edgeql","match":"(?x) \\b(\n __edgedbsys__ | __edgedbtpl__ | __new__ |\n __old__ | __source__ | __specified__ |\n __std__ | __subject__ | __type__\n)\\b\n"}]},"bytes":{"patterns":[{"name":"string.quoted.bytes.edgeql","begin":"(b)(')","end":"(\\2)","patterns":[{"include":"#bytes-escapes"},{"match":"([\\n -\u0026(-\\[\\]-~])+"},{"name":"invalid.illegal.bytes.edgeql","match":"(\\\\x.{1,2})|(\\\\.)|(.)"}],"beginCaptures":{"1":{"name":"storage.type.string.edgeql"},"2":{"name":"punctuation.definition.string.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.edgeql"}}},{"name":"string.quoted.bytes.edgeql","begin":"(b)(\")","end":"(\\2)","patterns":[{"include":"#bytes-escapes"},{"match":"([\\n -!#-\\[\\]-~])+"},{"name":"invalid.illegal.bytes.edgeql","match":"(\\\\x.{1,2})|(\\\\.)|(.)"}],"beginCaptures":{"1":{"name":"storage.type.string.edgeql"},"2":{"name":"punctuation.definition.string.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.edgeql"}}}]},"bytes-escapes":{"name":"constant.character.escape.edgeql","match":"(?x)\n (\n \\\\[\\\\'\"bfnrt] |\n \\\\x[0-9a-fA-F]{2}\n )\n"},"casts":{"contentName":"meta.typecast.edgeql","begin":"(?xi)\n (?:\n (?\u003c= ^ | [@~+\\-*/%^\u003c\u003e=?,:(\\[{])\n |\n (?\u003c=\n AND | OR | NOT | LIKE | ILIKE | IS | IN | IF | ELSE |\n UNION | ALL | EXISTS |\n\n SELECT | GROUP | UPDATE | BY | THEN | LIMIT |\n # there are some ligature-related issues with \"fi\" and \"ff\"\n F[Ii]LTER | OF[Ff]SET\n )\n ) \\s* (\\\u003c)\n","end":"(\\\u003e)","patterns":[{"include":"#types"},{"include":"#types-common"}],"beginCaptures":{"1":{"name":"keyword.operator.cast.begin.edgeql"}},"endCaptures":{"1":{"name":"keyword.operator.cast.end.edgeql"}}},"code":{"patterns":[{"match":"(?xi)\n \\b(FROM) \\s+ (EDGEQL | SQL) \\s+ (EXPRESSION)\n","captures":{"1":{"name":"keyword.declaration.edgeql"},"3":{"name":"keyword.declaration.edgeql"}}},{"begin":"(?xi)\n \\b(FROM) \\s+\n (SQL) \\s+\n (\\$\\w?\\$)\n","end":"(\\3)","patterns":[{"include":"source.sql"}],"beginCaptures":{"1":{"name":"keyword.declaration.edgeql"},"3":{"name":"string.quoted.edgeql"}},"endCaptures":{"1":{"name":"string.quoted.edgeql"}}},{"begin":"(?xi)\n \\b(FROM) \\s+\n (EDGEQL) \\s+\n (\\$\\w?\\$)\n","end":"(\\3)","patterns":[{"include":"source.edgeql"}],"beginCaptures":{"1":{"name":"keyword.declaration.edgeql"},"3":{"name":"string.quoted.edgeql"}},"endCaptures":{"1":{"name":"string.quoted.edgeql"}}}]},"commandblock":{"begin":"(?=SET|CREATE|ALTER|DROP|RENAME|FROM)","end":"(?=\\})","patterns":[{"include":"#all"}]},"comments":{"patterns":[{"name":"comment.line.number-sign.edgeql","match":"(#)\\s*((BUG|FIXME|TODO|XXX)).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.edgeql"},"2":{"name":"comment.line.note.notation.edgeql"},"3":{"name":"comment.line.note.edgeql"}}},{"name":"comment.line.number-sign.edgeql","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.edgeql"}}}]},"curlybraces":{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"#comments"},{"include":"#commandblock"},{"include":"#shape"}],"beginCaptures":{"1":{"name":"punctuation.parenthesis.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.parenthesis.end.edgeql"}}},"definition":{"match":"(?x)\n (?:\n ([[:alpha:]_][[:alnum:]_]*)\n |\n ([\\.\\d]\\S*?)\n ) (?=\\s*:=)\n","captures":{"1":{"name":"variable.parameter.definition.edgeql"},"2":{"name":"invalid.illegal.definition.edgeql"}}},"expressions":{"patterns":[{"include":"#comments"},{"include":"#code"},{"include":"#keywords"},{"include":"#fncalls"},{"include":"#operators"},{"include":"#builtins"},{"include":"#types"},{"include":"#quoted-name"},{"include":"#values"},{"include":"#link-properties"},{"include":"#variables"},{"include":"#parentheses"},{"include":"#squarebraces"},{"include":"#curlybraces"},{"include":"#casts"}]},"fncallargs":{"patterns":[{"include":"#definition"},{"include":"#expressions"},{"name":"punctuation.separator.arguments.edgeql","match":"(,)"},{"name":"invalid.illegal.delimiter.edgeql","match":"(;)"}]},"fncalls":{"patterns":[{"name":"meta.function-call.edgeql","begin":"(?x)\n \\b(?\u003c!\\.|\\.\u003c|\\.\u003e)\n # function name\n (?:\n (\n # functions\n abs | adjacent | all |\n any | array_agg | array_fill |\n array_get | array_join | array_replace |\n array_unpack | assert | assert_distinct |\n assert_exists | assert_single | bit_and |\n bit_lshift | bit_not | bit_or |\n bit_rshift | bit_xor | bounded_above |\n bounded_below | bytes_get_bit | ceil |\n contains | count | date_get |\n datetime_current | datetime_get | datetime_of_statement |\n datetime_of_transaction | datetime_truncate | duration_get |\n duration_normalize_days | duration_normalize_hours | duration_to_seconds |\n duration_truncate | enumerate | find |\n floor | get_current_database | get_instance_name |\n get_transaction_isolation | get_version | get_version_as_str |\n json_array_unpack | json_get | json_object_pack |\n json_object_unpack | json_set | json_typeof |\n len | lg | ln |\n log | max | mean |\n min | multirange | multirange_unpack |\n overlaps | random | range |\n range_get_lower | range_get_upper | range_is_empty |\n range_is_inclusive_lower | range_is_inclusive_upper | range_unpack |\n re_match | re_match_all | re_replace |\n re_test | round | search |\n sequence_next | sequence_reset | sqrt |\n stddev | stddev_pop | str_lower |\n str_lpad | str_ltrim | str_pad_end |\n str_pad_start | str_repeat | str_replace |\n str_reverse | str_rpad | str_rtrim |\n str_split | str_title | str_trim |\n str_trim_end | str_trim_start | str_upper |\n strictly_above | strictly_below | sum |\n time_get | to_bigint | to_bytes |\n to_date_duration | to_datetime | to_decimal |\n to_duration | to_float32 | to_float64 |\n to_int16 | to_int32 | to_int64 |\n to_json | to_local_date | to_local_datetime |\n to_local_time | to_relative_duration | to_str |\n uuid_generate_v1mc | uuid_generate_v4 | var |\n var_pop | with_options\n |\n # constraints\n constraint | exclusive | expression |\n len_value | max_ex_value | max_len_value |\n max_value | min_ex_value | min_len_value |\n min_value | one_of | regexp\n )\n |\n ([[:alpha:]_][[:alnum:]_]*)\n |\n (`.*?`)\n ) \\s*(\\()\n","end":"(\\))","patterns":[{"include":"#fncallargs"}],"beginCaptures":{"1":{"name":"support.function.builtin.edgeql"},"2":{"name":"entity.name.function.edgeql"},"3":{"name":"string.interpolated.edgeql"},"4":{"name":"punctuation.definition.arguments.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.arguments.end.edgeql"}}},{"name":"meta.function-call.edgeql","begin":"(?x)\n \\b(?\u003c!\\.|\\.\u003c|\\.\u003e)\n # module\n (?:\n (\n cal | cfg | enc |\n ext | fts | math |\n pg | schema | std |\n sys\n )\n |\n (?# masking built-ins in odd ways)\n (\n #functions\n abs | adjacent | all |\n any | array_agg | array_fill |\n array_get | array_join | array_replace |\n array_unpack | assert | assert_distinct |\n assert_exists | assert_single | bit_and |\n bit_lshift | bit_not | bit_or |\n bit_rshift | bit_xor | bounded_above |\n bounded_below | bytes_get_bit | ceil |\n contains | count | date_get |\n datetime_current | datetime_get | datetime_of_statement |\n datetime_of_transaction | datetime_truncate | duration_get |\n duration_normalize_days | duration_normalize_hours | duration_to_seconds |\n duration_truncate | enumerate | find |\n floor | get_current_database | get_instance_name |\n get_transaction_isolation | get_version | get_version_as_str |\n json_array_unpack | json_get | json_object_pack |\n json_object_unpack | json_set | json_typeof |\n len | lg | ln |\n log | max | mean |\n min | multirange | multirange_unpack |\n overlaps | random | range |\n range_get_lower | range_get_upper | range_is_empty |\n range_is_inclusive_lower | range_is_inclusive_upper | range_unpack |\n re_match | re_match_all | re_replace |\n re_test | round | search |\n sequence_next | sequence_reset | sqrt |\n stddev | stddev_pop | str_lower |\n str_lpad | str_ltrim | str_pad_end |\n str_pad_start | str_repeat | str_replace |\n str_reverse | str_rpad | str_rtrim |\n str_split | str_title | str_trim |\n str_trim_end | str_trim_start | str_upper |\n strictly_above | strictly_below | sum |\n time_get | to_bigint | to_bytes |\n to_date_duration | to_datetime | to_decimal |\n to_duration | to_float32 | to_float64 |\n to_int16 | to_int32 | to_int64 |\n to_json | to_local_date | to_local_datetime |\n to_local_time | to_relative_duration | to_str |\n uuid_generate_v1mc | uuid_generate_v4 | var |\n var_pop | with_options\n |\n #constraints\n constraint | exclusive | expression |\n len_value | max_ex_value | max_len_value |\n max_value | min_ex_value | min_len_value |\n min_value | one_of | regexp\n )\n |\n ([[:alpha:]_][[:alnum:]_]*)\n |\n (`.*?`)\n )\n\n \\s*(::)\\s*\n\n # function name\n (?:\n (\n #functions\n abs | adjacent | all |\n any | array_agg | array_fill |\n array_get | array_join | array_replace |\n array_unpack | assert | assert_distinct |\n assert_exists | assert_single | bit_and |\n bit_lshift | bit_not | bit_or |\n bit_rshift | bit_xor | bounded_above |\n bounded_below | bytes_get_bit | ceil |\n contains | count | date_get |\n datetime_current | datetime_get | datetime_of_statement |\n datetime_of_transaction | datetime_truncate | duration_get |\n duration_normalize_days | duration_normalize_hours | duration_to_seconds |\n duration_truncate | enumerate | find |\n floor | get_current_database | get_instance_name |\n get_transaction_isolation | get_version | get_version_as_str |\n json_array_unpack | json_get | json_object_pack |\n json_object_unpack | json_set | json_typeof |\n len | lg | ln |\n log | max | mean |\n min | multirange | multirange_unpack |\n overlaps | random | range |\n range_get_lower | range_get_upper | range_is_empty |\n range_is_inclusive_lower | range_is_inclusive_upper | range_unpack |\n re_match | re_match_all | re_replace |\n re_test | round | search |\n sequence_next | sequence_reset | sqrt |\n stddev | stddev_pop | str_lower |\n str_lpad | str_ltrim | str_pad_end |\n str_pad_start | str_repeat | str_replace |\n str_reverse | str_rpad | str_rtrim |\n str_split | str_title | str_trim |\n str_trim_end | str_trim_start | str_upper |\n strictly_above | strictly_below | sum |\n time_get | to_bigint | to_bytes |\n to_date_duration | to_datetime | to_decimal |\n to_duration | to_float32 | to_float64 |\n to_int16 | to_int32 | to_int64 |\n to_json | to_local_date | to_local_datetime |\n to_local_time | to_relative_duration | to_str |\n uuid_generate_v1mc | uuid_generate_v4 | var |\n var_pop | with_options\n |\n #constraints\n constraint | exclusive | expression |\n len_value | max_ex_value | max_len_value |\n max_value | min_ex_value | min_len_value |\n min_value | one_of | regexp\n )\n |\n ([[:alpha:]_][[:alnum:]_]*)\n |\n (`.*?`)\n ) \\s*(\\()\n","end":"(\\))","patterns":[{"include":"#fncallargs"}],"beginCaptures":{"1":{"name":"support.other.module.builtin.edgeql"},"2":{"name":"support.function.builtin.edgeql"},"3":{"name":"entity.name.function.edgeql"},"4":{"name":"string.interpolated.edgeql"},"5":{"name":"keyword.operator.namespace.edgeql"},"6":{"name":"support.function.builtin.edgeql"},"7":{"name":"entity.name.function.edgeql"},"8":{"name":"string.interpolated.edgeql"},"9":{"name":"punctuation.definition.arguments.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.arguments.end.edgeql"}}}]},"fnstatement":{"begin":"(?ix) \\b(?\u003c![:\\.])(FUNCTION|AGGREGATE|ABSTRACT CONSTRAINT)\\b","end":"(?=[^\\s\\w:]|\\bEXTENDING\\b|$)","patterns":[{"include":"#builtins"},{"include":"#identifier"},{"name":"keyword.operator.namespace.edgeql","match":"(::)"}],"beginCaptures":{"1":{"name":"keyword.declaration.edgeql"}}},"identifier":{"match":"([[:alpha:]_][[:alnum:]_]*)"},"keywords":{"patterns":[{"name":"constant.language.boolean.true.edgeql","match":"(?i)\\b(TRUE)\\b"},{"name":"constant.language.boolean.false.edgeql","match":"(?i)\\b(FALSE)\\b"},{"name":"constant.language.empty.edgeql","match":"(?i)\\b(EMPTY)\\b"},{"name":"keyword.declaration.edgeql","match":"(?i)\\b(?\u003c!::|\\.|\\.\u003c|\\.\u003e)(CONSTRAINT)\\b(?!=\\s+\\()"},{"name":"keyword.declaration.edgeql","match":"(?ix) \\b(?\u003c!::|\\.|\\.\u003c|\\.\u003e)(\n (?# special case)\n (named \\s+ only)\n |\n (as \\s+ text)\n |\n (all (?!\\s*\\())\n |\n\n (?# unreserved)\n abort | abstract | access | after | alias |\n allow | annotation | applied | as | asc |\n assignment | before | cardinality | cast | committed |\n config | conflict | cube | current | database |\n ddl | declare | default | deferrable | deferred |\n delegated | deny | desc | each | empty |\n extension | final | first | from | function |\n future | implicit | index | infix | inheritable |\n instance | into | isolation | last | link |\n migration | multi | object | of | only |\n onto | operator | optionality | order | orphan |\n overloaded | owned | package | policy | populate |\n postfix | prefix | property | proposed | pseudo |\n read | reject | release | rename | required |\n reset | restrict | rewrite | role | roles |\n rollup | savepoint | scalar | schema | sdl |\n serializable | session | source | superuser | system |\n target | ternary | then | to | transaction |\n trigger | type | unless | using | verbose |\n version | view | write\n |\n (?# reserved)\n administer | alter | analyze | and | anyarray |\n anyobject | anytuple | begin | by | case |\n check | commit | configure | create | deallocate |\n delete | describe | detached | discard | distinct |\n do | drop | else | end | except |\n exists | explain | extending | fetch | filter |\n for | get | global | grant | group |\n if | ilike | import | in | insert |\n intersect | introspect | is | like | limit |\n listen | load | lock | match | module |\n move | never | not | notify | offset |\n on | optional | or | over | partition |\n prepare | raise | refresh | revoke | rollback |\n select | set | single | start | typeof |\n union | update | variadic | when | window |\n with\n)\\b\n"}]},"link-properties":{"name":"support.other.linkproperty.edgeql","begin":"(\\@)","end":"(?\u003c=[[:alnum:]_`])","patterns":[{"include":"#identifier"},{"include":"#quoted-name"}]},"number":{"patterns":[{"name":"constant.numeric.float.edgeql","match":"(?x)\n (?:\n #decimal part\n \\.(_*)(?:[0-9](?:[0-9_]*[0-9])?)\n |\n # integer part\n \\b(?: [1-9](?: [0-9_]*[0-9] )? | 0 )\n (?:\\.(_*)[0-9](?:[0-9_]*[0-9])?)\n )\n ((_*)([eE][\\+\\-]?)(_*)[0-9](?:[0-9_]*[0-9])?)?\n\n (_*)\n \\b\n","captures":{"1":{"name":"invalid.illegal.dec.edgeql"},"2":{"name":"invalid.illegal.dec.edgeql"},"4":{"name":"invalid.illegal.dec.edgeql"},"5":{"name":"storage.type.number.edgeql"},"6":{"name":"invalid.illegal.dec.edgeql"},"7":{"name":"invalid.illegal.dec.edgeql"}}},{"name":"constant.numeric.float.edgeql","match":"(?x)\n (?:\n # integer part\n \\b(?:[1-9](?:[0-9_]*[0-9])?|0)\n )\n ((_*)([eE][\\+\\-]?)(_*)[0-9](?:[0-9_]*[0-9])?)\n\n (_*)\n \\b\n","captures":{"2":{"name":"invalid.illegal.dec.edgeql"},"3":{"name":"storage.type.number.edgeql"},"4":{"name":"invalid.illegal.dec.edgeql"},"5":{"name":"invalid.illegal.dec.edgeql"}}},{"name":"constant.numeric.decimal.edgeql","match":"(?x)\n (?:\n #decimal part\n \\.(_*)(?:[0-9](?:[0-9_]*[0-9])?)\n |\n # integer part\n \\b(?:[1-9](?:[0-9_]*[0-9])?|0)\n (?:\\.(_*)[0-9](?:[0-9_]*[0-9])?)?\n )\n ((_*)([eE][\\+\\-]?)(_*)[0-9](?:[0-9_]*[0-9])?)?\n\n (_*)\n (n)\n","captures":{"1":{"name":"invalid.illegal.dec.edgeql"},"2":{"name":"invalid.illegal.dec.edgeql"},"4":{"name":"invalid.illegal.dec.edgeql"},"5":{"name":"storage.type.number.edgeql"},"6":{"name":"invalid.illegal.dec.edgeql"},"7":{"name":"invalid.illegal.dec.edgeql"},"8":{"name":"storage.type.number.edgeql"}}},{"name":"constant.numeric.integer.edgeql","match":"(?x)\n (?:\n # integer part\n \\b(?:[1-9](?:[0-9_]*[0-9])?|0)\n )\n (_*)\n \\b\n","captures":{"1":{"name":"invalid.illegal.dec.edgeql"},"2":{"name":"invalid.illegal.dec.edgeql"}}}]},"operators":{"patterns":[{"name":"keyword.operator.navigation.edgeql","match":"(\\.[\u003c\u003e])"},{"name":"keyword.operator.namespace.edgeql","match":"(::)"},{"name":"keyword.declaration.edgeql","match":"-\u003e"},{"name":"punctuation.declaration.delimiter.edgeql","match":"(:(?!=))"},{"name":"keyword.operator.edgeql","match":"(?x)\n \\?\\!\\= | \\?\\? | \\?\\= | \\\u003e\\= | \\\u003c\\= | \\:\\= | \\/\\/ | \\+\\+ |\n \\!\\= | \\^ | \\\u003e | \\= | \\\u003c | \\/ | \\- | \\+ |\n \\* | \\%\n"}]},"parencommon":{"patterns":[{"name":"punctuation.separator.element.edgeql","match":"(,)"},{"name":"invalid.illegal.delimiter.edgeql","match":"(;)"}]},"parentheses":{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#expressions"},{"include":"#parencommon"}],"beginCaptures":{"1":{"name":"punctuation.parenthesis.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.parenthesis.end.edgeql"}}},"quoted-name":{"name":"string.interpolated.edgeql","match":"(`.*?`)"},"shape":{"begin":"(?=\\S)","end":"(?=\\})","patterns":[{"name":"punctuation.statement.delimiter.edgeql","match":"(;)"},{"include":"#expressions"},{"include":"#parencommon"}]},"squarebraces":{"begin":"(\\[)","end":"(\\])","patterns":[{"name":"keyword.operator.edgeql","match":"(^|\\b|\\s)(-\u003e)($|\\b|\\s)"},{"include":"#expressions"},{"include":"#parencommon"}],"beginCaptures":{"1":{"name":"punctuation.parenthesis.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.parenthesis.end.edgeql"}}},"string":{"patterns":[{"name":"string.quoted.raw.edgeql","begin":"(r)(['\"])","end":"(\\2)","beginCaptures":{"1":{"name":"storage.type.string.edgeql"},"2":{"name":"punctuation.definition.string.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.edgeql"}}},{"name":"string.quoted.edgeql","begin":"(['\"])","end":"(\\1)","patterns":[{"include":"#string-escapes"},{"include":"#string-invalid-escapes"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.edgeql"}}},{"name":"string.dollar.edgeql","begin":"(\\$([[:alpha:]_][[:alnum:]]*)*\\$)","end":"(\\1)","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.edgeql"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.edgeql"}}}]},"string-escapes":{"name":"constant.character.escape.edgeql","match":"(?x)\n (\n \\\\(?=\\s*\\n) |\n \\\\[\\\\'\"bfnrt] |\n \\\\x[0-7][0-9a-fA-F] |\n \\\\u[0-9a-fA-F]{4} |\n \\\\U[0-9a-fA-F]{8}\n )\n"},"string-invalid-escapes":{"name":"invalid.illegal.escapes.edgeql","match":"(\\\\.)"},"types":{"patterns":[{"begin":"\\b(?\u003c!::|\\.)(tuple)\\s*(\u003c)","end":"(\u003e)","patterns":[{"include":"#types"},{"name":"punctuation.separator.type.edgeql","match":"(,)"},{"match":"(:)"},{"include":"#types-common"}],"beginCaptures":{"1":{"name":"storage.type.edgeql"},"2":{"name":"storage.type.placeholder.begin.edgeql"}},"endCaptures":{"1":{"name":"storage.type.placeholder.end.edgeql"}}},{"begin":"\\b(?\u003c!::|\\.)(array)\\s*(\u003c)","end":"(\u003e)","patterns":[{"name":"invalid.illegal.type.edgeql","match":"array"},{"include":"#types"},{"include":"#array-dimensions"},{"include":"#types-common"}],"beginCaptures":{"1":{"name":"storage.type.edgeql"},"2":{"name":"storage.type.placeholder.begin.edgeql"}},"endCaptures":{"1":{"name":"storage.type.placeholder.end.edgeql"}}},{"name":"storage.type.edgeql","match":"(?x) \\b(?\u003c!::|\\.)(\n array | tuple\n)\\b\n"},{"include":"#builtin-modules"},{"include":"#builtin-types"},{"include":"#builtin-indexes"}]},"types-common":{"patterns":[{"include":"#identifier"},{"name":"keyword.operator.namespace.edgeql","match":"(::)"}]},"values":{"patterns":[{"include":"#number"},{"include":"#bytes"},{"include":"#string"}]},"variables":{"name":"constant.language.variable.edgeql","begin":"(\\$)(?=[[:alnum:]_]|`)","end":"(?\u003c=[[:alnum:]_`])","patterns":[{"include":"#identifier"},{"include":"#quoted-name"},{"match":"(\\d)+"}]}}}
|
data/grammars/source.fsharp.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"fsharp","scopeName":"source.fsharp","patterns":[{"include":"#compiler_directives"},{"include":"#comments"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#abstract_definition"},{"include":"#attributes"},{"include":"#modules"},{"include":"#anonymous_functions"},{"include":"#du_declaration"},{"include":"#record_declaration"},{"include":"#records"},{"include":"#strp_inlined"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"repository":{"abstract_definition":{"name":"abstract.definition.fsharp","begin":"\\b(abstract)\\s+(member)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)","end":"\\s*(with)\\b|=|$","patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"5":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},"anonymous_functions":{"patterns":[{"name":"function.anonymous","begin":"\\b(fun)\\b","end":"(-\u003e)","patterns":[{"include":"#comments"},{"begin":"(\\()","end":"\\s*(?=(-\u003e))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}}]},"anonymous_record_declaration":{"begin":"(\\{\\|)","end":"(\\|\\})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(:)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},"attributes":{"patterns":[{"name":"support.function.attribute.fsharp","begin":"\\[\\\u003c","end":"\\\u003e\\]|\\]","patterns":[{"include":"$self"}]}]},"cexprs":{"patterns":[{"name":"cexpr.fsharp","match":"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)","captures":{"0":{"name":"keyword.fsharp"}}}]},"chars":{"patterns":[{"name":"char.fsharp","match":"('\\\\?.')","captures":{"1":{"name":"string.quoted.single.fsharp"}}}]},"comments":{"patterns":[{"name":"comment.literate.command.fsharp","match":"(\\(\\*{3}.*\\*{3}\\))","beginCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp","begin":"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$","while":"^(?!\\s*(\\*)+\\)\\s*$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.fsharp","begin":"(\\(\\*(?!\\)))","end":"(\\*+\\))","patterns":[{"name":"fast-capture.comment.line.double-slash.fsharp","match":"//"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp.end","match":"((?\u003c!\\()(\\*)+\\))","captures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.line.markdown.fsharp","begin":"///","while":"///","patterns":[{"include":"source.gfm"}]},{"name":"comment.line.double-slash.fsharp","match":"//.*$"}]},"common_binding_definition":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(:)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)","end":"(?=:)","patterns":[{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"match":"([[:alpha:]0-9'^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(:)\\s*([?[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"match":"(-\u003e)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*","end":"(?==)|(?=\\))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\u003c+(?![[:space:]]*\\)))","end":"((?\u003c!:)\u003e|\\))","patterns":[{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"({)","end":"(})","patterns":[{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#definition"},{"include":"#variables"},{"include":"#keywords"}]},"common_declaration":{"patterns":[{"begin":"\\s*(-\u003e)\\s*([[:alpha:]0-9'`^._ ]+)(\u003c)","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(-\u003e)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(\u003c))","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"keyword.symbol.fsharp"},"5":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"compiler_directives":{"patterns":[{"name":"keyword.control.directive.fsharp","match":"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)"}]},"constants":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"name":"constant.numeric.float.fsharp","match":"\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"},{"name":"constant.numeric.integer.nativeint.fsharp","match":"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"},{"name":"constant.language.boolean.fsharp","match":"\\b(true|false)\\b"},{"name":"constant.other.fsharp","match":"\\b(null|void)\\b"}]},"definition":{"patterns":[{"name":"binding.fsharp","begin":"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*((with\\b)|(=|\\n+=|(?\u003c=\\=)))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=)","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"(?\u003c=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"4":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\n$","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(new)\\b\\s+(\\()","end":"(\\))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"double_tick":{"patterns":[{"name":"variable.other.binding.fsharp","match":"(``)([^`]*)(``)","captures":{"1":{"name":"string.quoted.single.fsharp"},"2":{"name":"variable.other.binding.fsharp"},"3":{"name":"string.quoted.single.fsharp"}}}]},"du_declaration":{"patterns":[{"name":"du_declaration.fsharp","begin":"\\b(of)\\b","end":"$|(\\|)","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)","captures":{"1":{"name":"variable.parameter.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"match":"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"generic_declaration":{"patterns":[{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.symbol.fsharp","match":":"},{"include":"#constants"},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"},{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"match":"(\\|)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"storage.modifier","match":"\\b(private|public|internal)\\b"},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.control","match":"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{"name":"keyword.symbol.arrow.fsharp","match":"(\\-\u003e|\\\u003c\\-)"},{"name":"keyword.symbol.fsharp","match":"(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\(|\\)|\\\u003c\\\u003c)"}]},"member_declaration":{"patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`\u003c\u003e._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}]},"modules":{"patterns":[{"name":"entity.name.section.fsharp","begin":"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)","end":"(\\s?=|\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"storage.modifier.fsharp"},"4":{"name":"entity.name.section.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"namespace.open.fsharp","begin":"\\b(open type|open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"name":"namespace.alias.fsharp","begin":"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.type.namespace.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.section.fsharp"}}}]},"record_declaration":{"patterns":[{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`\u003c\u003e^._]*)\\s*((?\u003c!:):(?!:))\\s*","end":"$|(;|\\})","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#attributes"},{"include":"#anonymous_functions"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"record_signature":{"patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"begin":"({)","end":"(})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"records":{"patterns":[{"name":"record.fsharp","begin":"\\b(type)[\\s]+(private|internal|public)?\\s*","end":"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))","patterns":[{"include":"#comments"},{"include":"#attributes"},{"match":"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"((?\u003c!:)\u003e)","patterns":[{"match":"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(static member|member|new)","captures":{"1":{"name":"keyword.fsharp"}}},{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(private|internal|public)","captures":{"1":{"name":"storage.modifier.fsharp"}}},{"begin":"(\\()","end":"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"storage.modifier.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.fsharp"},"5":{"name":"variable.parameter.fsharp"},"6":{"name":"keyword.symbol.fsharp"},"7":{"name":"keyword.symbol.fsharp"}}}]},"string_formatter":{"patterns":[{"name":"entity.name.type.format.specifier.fsharp","match":"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))","captures":{"1":{"name":"keyword.format.specifier.fsharp"}}}]},"strings":{"patterns":[{"name":"string.quoted.literal.fsharp","begin":"(?=[^\\\\])(@\")","end":"(\")(?!\")","patterns":[{"name":"constant.character.string.escape.fsharp","match":"\"(\")"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.triple.fsharp","begin":"(?=[^\\\\])(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.double.fsharp","begin":"(?=[^\\\\])(\")","end":"(\")","patterns":[{"name":"punctuation.separator.string.ignore-eol.fsharp","match":"\\\\$[ \\t]*"},{"name":"constant.character.string.escape.fsharp","match":"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))"},{"name":"invalid.illegal.character.string.fsharp","match":"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])"},{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}}]},"strp_inlined":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"strp_inlined_body":{"patterns":[{"include":"#comments"},{"include":"#anonymous_functions"},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(static member|member)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)","captures":{"1":{"name":"keyword.fsharp"},"2":{"name":"variable.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#keywords"},{"include":"#text"},{"include":"#definition"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}]},"text":{"patterns":[{"name":"text.fsharp","match":"\\\\"}]},"tuple_signature":{"patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"variables":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"match":"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`\u003c\u003e^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}}]}}}
|
1
|
+
{"name":"fsharp","scopeName":"source.fsharp","patterns":[{"include":"#compiler_directives"},{"include":"#comments"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#abstract_definition"},{"include":"#attributes"},{"include":"#modules"},{"include":"#anonymous_functions"},{"include":"#du_declaration"},{"include":"#record_declaration"},{"include":"#records"},{"include":"#strp_inlined"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"repository":{"abstract_definition":{"name":"abstract.definition.fsharp","begin":"\\b(abstract)\\s+(member)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(\u003c)?","end":"\\s*(with)\\b|=|$","patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"match":"(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"5":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.fsharp"}}},"anonymous_functions":{"patterns":[{"name":"function.anonymous","begin":"\\b(fun)\\b","end":"(-\u003e)","patterns":[{"include":"#comments"},{"begin":"(\\()","end":"\\s*(?=(-\u003e))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"}}}]},"anonymous_record_declaration":{"begin":"(\\{\\|)","end":"(\\|\\})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(:)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},"attributes":{"patterns":[{"name":"support.function.attribute.fsharp","begin":"\\[\\\u003c","end":"\\\u003e\\]|\\]","patterns":[{"include":"$self"}]}]},"cexprs":{"patterns":[{"name":"cexpr.fsharp","match":"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)","captures":{"0":{"name":"keyword.fsharp"}}}]},"chars":{"patterns":[{"name":"char.fsharp","match":"('\\\\?.')","captures":{"1":{"name":"string.quoted.single.fsharp"}}}]},"comments":{"patterns":[{"name":"comment.literate.command.fsharp","match":"(\\(\\*{3}.*\\*{3}\\))","beginCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp","begin":"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$","while":"^(?!\\s*(\\*)+\\)\\s*$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.fsharp","begin":"(\\(\\*(?!\\)))","end":"(\\*+\\))","patterns":[{"name":"fast-capture.comment.line.double-slash.fsharp","match":"//"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"comment.block.fsharp"}},"endCaptures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.block.markdown.fsharp.end","match":"((?\u003c!\\()(\\*)+\\))","captures":{"1":{"name":"comment.block.fsharp"}}},{"name":"comment.line.markdown.fsharp","begin":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])///(?!/)","while":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])///(?!/)","patterns":[{"include":"source.gfm"}]},{"name":"comment.line.double-slash.fsharp","match":"(?\u003c![!%\u0026+-.\u003c=\u003e?@^|/])//(.*$)"}]},"common_binding_definition":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(:)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)","end":"(?=:)","patterns":[{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"match":"([[:alpha:]0-9'^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(:)\\s*([?[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"match":"(-\u003e)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)\\s*(\\()","end":"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*","end":"(?==)|(?=\\))","patterns":[{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\u003c+(?![[:space:]]*\\)))","end":"((?\u003c!:)\u003e|\\))","patterns":[{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"({)","end":"(})","patterns":[{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#definition"},{"include":"#variables"},{"include":"#keywords"}]},"common_declaration":{"patterns":[{"begin":"\\s*(-\u003e)\\s*([[:alpha:]0-9'`^._ ]+)(\u003c)","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"},"3":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(-\u003e)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"keyword.symbol.arrow.fsharp"},"2":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"begin":"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(\u003c))","end":"(\u003e)","patterns":[{"match":"([[:alpha:]0-9'`^._ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"keyword.symbol.fsharp"},"5":{"name":"entity.name.type.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"compiler_directives":{"patterns":[{"name":"keyword.control.directive.fsharp","match":"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)"}]},"constants":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"name":"constant.numeric.float.fsharp","match":"\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"},{"name":"constant.numeric.integer.nativeint.fsharp","match":"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"},{"name":"constant.language.boolean.fsharp","match":"\\b(true|false)\\b"},{"name":"constant.other.fsharp","match":"\\b(null|void)\\b"}]},"definition":{"patterns":[{"name":"binding.fsharp","begin":"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*((with\\b)|(=|\\n+=|(?\u003c=\\=)))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=)","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"(?\u003c=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\s*(=|\\n+=|(?\u003c=\\=))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"4":{"name":"variable.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\\u003c.*\\\u003e\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?\u003c=,)\\s)*)?","end":"\\n$","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"support.function.attribute.fsharp"},"4":{"name":"storage.modifier.fsharp"},"5":{"name":"variable.fsharp"}}},{"name":"binding.fsharp","begin":"\\b(new)\\b\\s+(\\()","end":"(\\))","patterns":[{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"double_tick":{"patterns":[{"name":"variable.other.binding.fsharp","match":"(``)([^`]*)(``)","captures":{"1":{"name":"string.quoted.single.fsharp"},"2":{"name":"variable.other.binding.fsharp"},"3":{"name":"string.quoted.single.fsharp"}}}]},"du_declaration":{"patterns":[{"name":"du_declaration.fsharp","begin":"\\b(of)\\b","end":"$|(\\|)","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)","captures":{"1":{"name":"variable.parameter.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"entity.name.type.fsharp"}}},{"match":"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#anonymous_record_declaration"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"generic_declaration":{"patterns":[{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.symbol.fsharp","match":":"},{"include":"#constants"},{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"(\u003e)","patterns":[{"match":"(('|\\^)[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"},{"include":"#generic_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"match":"(\\|)","captures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"storage.modifier","match":"\\b(private|public|internal)\\b"},{"name":"keyword.fsharp","match":"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{"name":"keyword.control","match":"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{"name":"keyword.symbol.arrow.fsharp","match":"(\\-\u003e|\\\u003c\\-)"},{"name":"keyword.symbol.fsharp","match":"(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|\u0026|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\(|\\)|\\\u003c\\\u003c)"}]},"member_declaration":{"patterns":[{"include":"#comments"},{"include":"#common_declaration"},{"begin":"(:)\\s*(\\()\\s*(static member|member)","end":"(\\))\\s*((?=,)|(?=\\=))","patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#variables"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"keyword.symbol.fsharp"},"3":{"name":"keyword.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"name":"keyword.symbol.fsharp","match":"(\\(|\\))"},{"match":"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`\u003c\u003e._ ]+)){0,1}","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}]},"modules":{"patterns":[{"name":"entity.name.section.fsharp","begin":"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)","end":"(\\s?=|\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"keyword.fsharp"},"3":{"name":"storage.modifier.fsharp"},"4":{"name":"entity.name.section.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"name":"namespace.open.fsharp","begin":"\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.section.fsharp"}}},{"name":"namespace.alias.fsharp","begin":"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)","end":"(\\s|$)","patterns":[{"name":"entity.name.section.fsharp","match":"(\\.)([A-Z][[:alpha:]0-9'_]*)","captures":{"1":{"name":"punctuation.separator.namespace-reference.fsharp"},"2":{"name":"entity.name.section.fsharp"}}}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"entity.name.type.namespace.fsharp"},"3":{"name":"keyword.symbol.fsharp"},"4":{"name":"entity.name.section.fsharp"}}}]},"record_declaration":{"patterns":[{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`\u003c\u003e^._]*)\\s*((?\u003c!:):(?!:))\\s*","end":"$|(;|\\})","patterns":[{"include":"#comments"},{"match":"([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#definition"},{"include":"#attributes"},{"include":"#anonymous_functions"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"record_signature":{"patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"begin":"({)","end":"(})","patterns":[{"match":"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}},{"include":"#record_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"records":{"patterns":[{"name":"record.fsharp","begin":"\\b(type)[\\s]+(private|internal|public)?\\s*","end":"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))","patterns":[{"include":"#comments"},{"include":"#attributes"},{"match":"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\u003c)","end":"((?\u003c!:)\u003e)","patterns":[{"match":"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(static member|member|new)","captures":{"1":{"name":"keyword.fsharp"}}},{"include":"#common_binding_definition"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"([\\w0-9'`^._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"\\s*(private|internal|public)","captures":{"1":{"name":"storage.modifier.fsharp"}}},{"begin":"(\\()","end":"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))","patterns":[{"include":"#member_declaration"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.fsharp"},"2":{"name":"storage.modifier.fsharp"}},"endCaptures":{"2":{"name":"keyword.fsharp"},"3":{"name":"keyword.fsharp"},"4":{"name":"keyword.fsharp"},"5":{"name":"variable.parameter.fsharp"},"6":{"name":"keyword.symbol.fsharp"},"7":{"name":"keyword.symbol.fsharp"}}}]},"string_formatter":{"patterns":[{"name":"entity.name.type.format.specifier.fsharp","match":"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))","captures":{"1":{"name":"keyword.format.specifier.fsharp"}}}]},"strings":{"patterns":[{"name":"string.quoted.literal.fsharp","begin":"(?=[^\\\\])(@\")","end":"(\")(?!\")","patterns":[{"name":"constant.character.string.escape.fsharp","match":"\"(\")"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.triple.fsharp","begin":"(?=[^\\\\])(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}},{"name":"string.quoted.double.fsharp","begin":"(?=[^\\\\])(\")","end":"(\")","patterns":[{"name":"punctuation.separator.string.ignore-eol.fsharp","match":"\\\\$[ \\t]*"},{"name":"constant.character.string.escape.fsharp","match":"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))"},{"name":"invalid.illegal.character.string.fsharp","match":"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])"},{"include":"#string_formatter"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.fsharp"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.fsharp"}}}]},"strp_inlined":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}}]},"strp_inlined_body":{"patterns":[{"include":"#comments"},{"include":"#anonymous_functions"},{"match":"(\\^[[:alpha:]0-9'._]+)","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"name":"keyword.fsharp","match":"\\b(and|when|or)\\b"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#strp_inlined_body"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"match":"(static member|member)\\s*([[:alpha:]0-9'`\u003c\u003e^._]+|``[[:alpha:]0-9' \u003c\u003e^._]+``)\\s*(:)","captures":{"1":{"name":"keyword.fsharp"},"2":{"name":"variable.fsharp"},"3":{"name":"keyword.symbol.fsharp"}}},{"include":"#compiler_directives"},{"include":"#constants"},{"include":"#strings"},{"include":"#chars"},{"include":"#double_tick"},{"include":"#keywords"},{"include":"#text"},{"include":"#definition"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#cexprs"},{"include":"#text"}]},"text":{"patterns":[{"name":"text.fsharp","match":"\\\\"}]},"tuple_signature":{"patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"match":"(([?[:alpha:]0-9'`^._ ]+))+","captures":{"1":{"name":"entity.name.type.fsharp"}}},{"include":"#tuple_signature"}],"beginCaptures":{"1":{"name":"keyword.symbol.fsharp"}},"endCaptures":{"1":{"name":"keyword.symbol.fsharp"}}},{"include":"#keywords"}]},"variables":{"patterns":[{"name":"keyword.symbol.fsharp","match":"\\(\\)"},{"match":"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`\u003c\u003e^._ ]+)","captures":{"1":{"name":"keyword.symbol.fsharp"},"2":{"name":"variable.parameter.fsharp"}}}]}}}
|
@@ -1 +1 @@
|
|
1
|
-
{"scopeName":"source.gdresource","patterns":[{"include":"#embedded_shader"},{"include":"#embedded_gdscript"},{"include":"#comment"},{"include":"#heading"},{"include":"#key_value"}],"repository":{"comment":{"name":"comment.line.gdresource","match":"(;).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.gdresource"}}},"data":{"patterns":[{"include":"#comment"},{"begin":"(?\u003c!\\w)(\\{)\\s*","end":"\\s*(\\})(?!\\w)","patterns":[{"include":"#key_value"},{"include":"#data"}],"beginCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}},"endCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}}},{"begin":"(?\u003c!\\w)(\\[)\\s*","end":"\\s*(\\])(?!\\w)","patterns":[{"include":"#data"}],"beginCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}},"endCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}}},{"name":"string.quoted.triple.basic.block.gdresource","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.gdresource","match":"\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})"},{"name":"invalid.illegal.escape.gdresource","match":"\\\\[^btnfr/\"\\\\\\n]"}]},{"name":"support.function.any-method.gdresource","match":"\"res:\\/\\/[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""},{"name":"support.class.library.gdresource","match":"(?\u003c=type=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""},{"name":"constant.character.escape.gdresource","match":"(?\u003c=NodePath\\(|parent=|name=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""},{"name":"string.quoted.double.basic.line.gdresource","
|
1
|
+
{"scopeName":"source.gdresource","patterns":[{"include":"#embedded_shader"},{"include":"#embedded_gdscript"},{"include":"#comment"},{"include":"#heading"},{"include":"#key_value"}],"repository":{"comment":{"name":"comment.line.gdresource","match":"(;).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.gdresource"}}},"data":{"patterns":[{"include":"#comment"},{"begin":"(?\u003c!\\w)(\\{)\\s*","end":"\\s*(\\})(?!\\w)","patterns":[{"include":"#key_value"},{"include":"#data"}],"beginCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}},"endCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}}},{"begin":"(?\u003c!\\w)(\\[)\\s*","end":"\\s*(\\])(?!\\w)","patterns":[{"include":"#data"}],"beginCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}},"endCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}}},{"name":"string.quoted.triple.basic.block.gdresource","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.gdresource","match":"\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})"},{"name":"invalid.illegal.escape.gdresource","match":"\\\\[^btnfr/\"\\\\\\n]"}]},{"name":"support.function.any-method.gdresource","match":"\"res:\\/\\/[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""},{"name":"support.class.library.gdresource","match":"(?\u003c=type=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""},{"name":"constant.character.escape.gdresource","match":"(?\u003c=NodePath\\(|parent=|name=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""},{"name":"string.quoted.double.basic.line.gdresource","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.gdresource","match":"\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})"},{"name":"invalid.illegal.escape.gdresource","match":"\\\\[^btnfr/\"\\\\\\n]"}]},{"name":"string.quoted.single.literal.line.gdresource","match":"'.*?'"},{"name":"constant.language.gdresource","match":"(?\u003c!\\w)(true|false)(?!\\w)"},{"name":"constant.numeric.float.gdresource","match":"(?\u003c!\\w)([\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\\+\\-]?[1-9]_?[0-9]*|(?:\\.[0-9_]*)))(?!\\w)"},{"name":"constant.numeric.integer.gdresource","match":"(?\u003c!\\w)((?:[\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))))(?!\\w)"},{"name":"constant.numeric.inf.gdresource","match":"(?\u003c!\\w)([\\+\\-]?inf)(?!\\w)"},{"name":"constant.numeric.nan.gdresource","match":"(?\u003c!\\w)([\\+\\-]?nan)(?!\\w)"},{"name":"constant.numeric.hex.gdresource","match":"(?\u003c!\\w)((?:0x(([0-9a-fA-F](([0-9a-fA-F]|_[0-9a-fA-F])+)?))))(?!\\w)"},{"name":"constant.numeric.oct.gdresource","match":"(?\u003c!\\w)(0o[0-7](_?[0-7])*)(?!\\w)"},{"name":"constant.numeric.bin.gdresource","match":"(?\u003c!\\w)(0b[01](_?[01])*)(?!\\w)"},{"begin":"(?\u003c!\\w)(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\()\\s?","end":"\\s?(\\))","patterns":[{"include":"#key_value"},{"include":"#data"}],"beginCaptures":{"1":{"name":"support.class.library.gdresource"}}},{"begin":"(?\u003c!\\w)(ExtResource|SubResource)(\\()\\s?","end":"\\s?(\\))","patterns":[{"include":"#key_value"},{"include":"#data"}],"beginCaptures":{"1":{"name":"keyword.control.gdresource"}}}]},"embedded_gdscript":{"begin":"(script/source) = \"","end":"\"","patterns":[{"include":"source.gdscript"}],"beginCaptures":{"1":{"name":"variable.other.property.gdresource"}}},"embedded_shader":{"name":"meta.embedded.block.gdshader","begin":"(code) = \"","end":"\"","patterns":[{"include":"source.gdshader"}],"beginCaptures":{"1":{"name":"variable.other.property.gdresource"}}},"heading":{"begin":"\\[([a-z_]*)\\s?","end":"\\]","patterns":[{"include":"#heading_properties"},{"include":"#data"}],"beginCaptures":{"1":{"name":"keyword.control.gdresource"}}},"heading_properties":{"patterns":[{"name":"invalid.illegal.noValue.gdresource","match":"(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)"},{"begin":"\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*","end":"($|(?==)|\\,?|\\s*(?=\\}))","patterns":[{"include":"#data"}],"beginCaptures":{"1":{"name":"variable.other.property.gdresource"},"2":{"name":"punctuation.definition.keyValue.gdresource"}}}]},"key_value":{"patterns":[{"name":"invalid.illegal.noValue.gdresource","match":"(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)"},{"begin":"\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*","end":"($|(?==)|\\,|\\s*(?=\\}))","patterns":[{"include":"#data"}],"beginCaptures":{"1":{"name":"variable.other.property.gdresource"},"2":{"name":"punctuation.definition.keyValue.gdresource"}}}]}}}
|