github-linguist 7.21.0 → 7.23.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 +584 -498
- data/ext/linguist/lex.linguist_yy.h +2 -3
- data/ext/linguist/tokenizer.l +52 -15
- data/grammars/inline.graphql.json +1 -0
- data/grammars/inline.graphql.php.json +1 -0
- data/grammars/inline.graphql.python.json +1 -0
- data/grammars/inline.graphql.re.json +1 -0
- data/grammars/inline.graphql.res.json +1 -0
- data/grammars/inline.prisma.json +1 -1
- data/grammars/liquid.injection.json +1 -1
- data/grammars/markdown.graphql.codeblock.json +1 -0
- data/grammars/markdown.rescript.codeblock.json +1 -0
- data/grammars/source.abap.json +1 -1
- data/grammars/source.abapcds.json +1 -1
- data/grammars/source.astro.json +1 -1
- data/grammars/source.ats.json +1 -1
- data/grammars/source.bicep.json +1 -1
- data/grammars/source.brs.json +1 -1
- data/grammars/source.cds.json +1 -1
- data/grammars/source.cobol.json +1 -1
- data/grammars/source.context.json +1 -0
- data/grammars/source.cs.json +1 -1
- data/grammars/source.curry.json +1 -1
- data/grammars/source.dart.json +1 -1
- data/grammars/source.denizenscript.json +1 -1
- data/grammars/source.ditroff.json +1 -1
- data/grammars/source.elvish-transcript.json +1 -0
- data/grammars/source.elvish.in.markdown.json +1 -0
- data/grammars/source.elvish.json +1 -0
- data/grammars/source.fsharp.json +1 -1
- data/grammars/source.ftl.json +1 -1
- data/grammars/source.gcode.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.gdshader.json +1 -1
- data/grammars/source.gemini.json +1 -0
- data/grammars/source.graphql.json +1 -1
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hocon.json +1 -0
- data/grammars/source.json.json +1 -1
- data/grammars/source.jsonnet.json +1 -1
- data/grammars/source.kusto.json +1 -1
- data/grammars/source.livescript.json +1 -1
- data/grammars/source.mo.json +1 -1
- data/grammars/source.move.json +1 -0
- data/grammars/source.nix.json +1 -1
- data/grammars/source.pic.json +1 -1
- data/grammars/source.pony.json +1 -1
- data/grammars/source.postscript.json +1 -1
- data/grammars/source.ql.json +1 -1
- data/grammars/source.rego.json +1 -1
- data/grammars/source.rescript.json +1 -1
- data/grammars/source.rsc.json +1 -0
- data/grammars/source.scala.json +1 -1
- data/grammars/source.sexp.json +1 -0
- data/grammars/source.stan.json +1 -1
- data/grammars/source.svelte.json +1 -1
- data/grammars/source.ts.json +1 -1
- data/grammars/source.ts.prismaClientRawSQL.json +1 -0
- data/grammars/source.tsx.json +1 -1
- data/grammars/source.v.json +1 -1
- data/grammars/source.velocity.html.json +1 -0
- data/grammars/source.velocity.json +1 -0
- data/grammars/source.wren.json +1 -0
- data/grammars/source.wsd.json +1 -1
- data/grammars/source.xojo.json +1 -1
- data/grammars/text.adblock.json +1 -0
- data/grammars/text.checksums.json +1 -1
- data/grammars/text.html.liquid.json +1 -1
- data/grammars/text.html.statamic.json +1 -1
- data/grammars/text.info.json +1 -1
- data/grammars/text.marko.json +1 -1
- data/grammars/text.restructuredtext.json +1 -1
- data/grammars/text.roff.json +1 -1
- data/grammars/text.texinfo.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +2 -2
- data/lib/linguist/generated.rb +2 -2
- data/lib/linguist/generic.yml +1 -0
- data/lib/linguist/heuristics.yml +50 -2
- data/lib/linguist/language.rb +3 -4
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +96 -1
- data/lib/linguist/samples.json +1 -1
- data/lib/linguist/vendor.yml +1 -1
- metadata +32 -11
@@ -1 +1 @@
|
|
1
|
-
{"name":"LiveScript","scopeName":"source.livescript","patterns":[{"name":"storage.type.function.livescript","match":"(?x)\n\t\t\t\t!?[~-]{1,2}\u003e\\*?\n\t\t\t\t|\u003c[~-]{1,2}!?\n\t\t\t\t|\\(\\s* (?= instanceof[\\s)]|and[\\s)]|or[\\s)]|is[\\s)]|isnt[\\s)]|in[\\s)]|import[\\s)]|import\\ all[\\s)] |\\.|[-+/*%^\u0026\u003c\u003e=|][\\b\\s)\\w$]|\\*\\*|\\%\\%)\n\t\t\t\t| (?\u003c=[\\s(]instanceof|[\\s(]and|[\\s(]or|[\\s(]is|[\\s(]isnt|[\\s(]in|[\\s(]import|[\\s(]import\\ all|[\\s(]do|\\.|\\*\\*|\\%\\%|[\\b\\s(\\w$][-+/*%^\u0026\u003c\u003e=|]) \\s*\\)\n\t\t\t"},{"name":"comment.block.livescript","begin":"\\/\\*","end":"\\*\\/","patterns":[{"name":"storage.type.annotation.livescriptscript","match":"@\\w*"}],"captures":{"0":{"name":"punctuation.definition.comment.livescript"}}},{"name":"comment.line.number-sign.livescript","match":"(#)(?!\\{).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.livescript"}}},{"match":"((?:!|~|!~|~!)?function\\*?)\\s+([$\\w\\-]*[$\\w]+)","captures":{"1":{"name":"storage.type.function.livescript"},"2":{"name":"entity.name.function.livescript"}}},{"match":"(new)\\s+(\\w+(?:\\.\\w*)*)","captures":{"1":{"name":"keyword.operator.new.livescript"},"2":{"name":"entity.name.type.instance.livescript"}}},{"name":"keyword.illegal.livescript","match":"\\b(package|private|protected|public|interface|enum|static)(?!-)\\b"},{"name":"string.quoted.heredoc.livescript","begin":"'''","end":"'''","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}},{"name":"string.quoted.double.heredoc.livescript","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\."},{"include":"#interpolated_livescript"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}},{"name":"string.quoted.script.livescript","begin":"``","end":"``","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}},{"name":"string.array-literal.livescript","begin":"\u003c\\[","end":"\\]\u003e"},{"name":"string.regexp.livescript","match":"/{2}(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}"},{"name":"string.regexp.livescript","begin":"/{2}\\n","end":"/{2}[imgy]{0,4}","patterns":[{"include":"#embedded_spaced_comment"},{"include":"#interpolated_livescript"}]},{"name":"string.regexp.livescript","begin":"/{2}","end":"/{2}[imgy]{0,4}","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{"include":"#interpolated_livescript"}]},{"name":"string.regexp.livescript","match":"/(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])"},{"name":"keyword.operator.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(\n\t\t\t\t\tinstanceof|new|delete|typeof|and|or|is|isnt|not\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"name":"keyword.operator.livescript","match":"\u003c\\||\\|\u003e"},{"name":"keyword.control.livescript","match":"=\u003e"},{"name":"keyword.control.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(?:\n\t\t\t\treturn|break|continue|throw\n\t\t\t\t|try|if|while|for|for\\s+own|switch|unless|until\n\t\t\t\t|catch|finally|else|nobreak|case|default|fallthrough|when|otherwise|then\n\t\t\t\t|yield\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"name":"keyword.operator.livescript","match":"(?x)\n\t\t\t\tand=|or=|%|\u0026|\\^|\\*|\\/|(?\u003c![a-zA-Z$_])(\\-)?\\-(?!\\-?\u003e)|\\+\\+|\\+|\n\t\t\t\t~(?!~?\u003e)|==|=|!=|\u003c=|\u003e=|\u003c\u003c=|\u003e\u003e=|\n\t\t\t\t\u003e\u003e\u003e=|\u003c\u003e|\u003c(?!\\[)|(?\u003c!\\])\u003e|(?\u003c!\\w)!(?!([~\\-]+)?\u003e)|\u0026\u0026|\\.\\.(\\.)?|\\s\\.\\s|\\?|\\|\\||\\:|\\*=|(?\u003c!\\()/=|%=|\\+=|\\-=|\\.=|\u0026=\n\t\t\t\t|\\^=\n\t\t\t"},{"name":"storage.type.function.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(?:\n\t\t\t\tfunction\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"name":"keyword.other.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(?:\n\t\t\t\tthis|throw|then|try|typeof!?|til|to\n\t\t\t\t|continue|const|case|catch|class\n\t\t\t\t|in|instanceof|import|import\\s+all|implements|if|is\n\t\t\t\t|default|delete|debugger|do\n\t\t\t\t|for|for\\s+own|finally|function|from|fallthrough\n\t\t\t\t|super|switch\n\t\t\t\t|else|nobreak|extends|export|eval\n\t\t\t\t|and|arguments\n\t\t\t\t|new|not\n\t\t\t\t|unless|until\n\t\t\t\t|while|with|when\n\t\t\t\t|of|or|otherwise\n\t\t\t\t|let|var|loop\n\t\t\t\t|match\n\t\t\t\t|by|yield\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"match":"([a-zA-Z\\$_](?:[\\w$.-])*)\\s*(?!\\::)((:)|(=(?!\u003e)))\\s*(?!(\\s*!?\\s*\\(.*\\))?\\s*(!?[~-]{1,2}\u003e\\*?))","captures":{"1":{"name":"variable.assignment.livescript"},"3":{"name":"punctuation.separator.key-value, keyword.operator.livescript"},"4":{"name":"keyword.operator.livescript"}}},{"name":"meta.variable.assignment.destructured.livescript","begin":"(?\u003c=\\s|^)([\\[\\{])(?=.*?[\\]\\}]\\s+[:=])","end":"([\\]\\}]\\s*[:=])","patterns":[{"include":"#variable_name"},{"include":"#instance_variable"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"}],"beginCaptures":{"0":{"name":"keyword.operator.livescript"}},"endCaptures":{"0":{"name":"keyword.operator.livescript"}}},{"name":"meta.function.livescript","match":"(?x)\n\t\t\t\t(\\s*)\n\t\t\t\t(?=[a-zA-Z\\$_])\n\t\t\t\t([a-zA-Z\\$_]([\\w$.:-])*)\\s*\n\t\t\t\t(?=[:=](\\s*!?\\s*\\(.*\\))?\\s*(!?[~-]{1,2}\u003e\\*?))\n\t\t\t","captures":{"2":{"name":"entity.name.function.livescript"},"3":{"name":"entity.name.function.livescript"},"4":{"name":"variable.parameter.function.livescript"},"5":{"name":"storage.type.function.livescript"}}},{"name":"constant.language.boolean.true.livescript","match":"\\b(?\u003c!\\.)(true|on|yes)(?!\\s*:)\\b"},{"name":"constant.language.boolean.false.livescript","match":"\\b(?\u003c!\\.)(false|off|no)(?!\\s*:)\\b"},{"name":"constant.language.null.livescript","match":"\\b(?\u003c!\\.)(null|void)(?!\\s*:)\\b"},{"name":"variable.language.livescript","match":"\\b(?\u003c!\\.)(super|this|extends)(?!\\s*:)\\b"},{"name":"meta.class.livescript","match":"(class\\b)\\s+(@?[a-zA-Z$_][\\w$.-]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z$_][\\w$.-]*))?","captures":{"1":{"name":"storage.type.class.livescript"},"2":{"name":"entity.name.type.class.livescript"},"3":{"name":"keyword.control.inheritance.livescript"},"4":{"name":"entity.other.inherited-class.livescript"}}},{"name":"keyword.other.livescript","match":"\\b(debugger|\\\\)\\b"},{"name":"support.class.livescript","match":"(?x)\\b(\n\t\t\t\tArray|ArrayBuffer|Blob|Boolean|Date|document|event|Function|\n\t\t\t\tInt(8|16|32|64)Array|Math|Map|Number|\n\t\t\t\tObject|Proxy|RegExp|Set|String|WeakMap|\n\t\t\t\twindow|Uint(8|16|32|64)Array|XMLHttpRequest\n\t\t\t)\\b"},{"name":"entity.name.type.object.livescript","match":"\\b(console)\\b"},{"name":"constant.language.livescript","match":"\\b(Infinity|NaN|undefined)\\b"},{"name":"punctuation.terminator.statement.livescript","match":"\\;"},{"name":"meta.delimiter.object.comma.livescript","match":",[ |\\t]*"},{"name":"meta.delimiter.method.period.livescript","match":"\\."},{"name":"meta.brace.curly.livescript","match":"\\{|\\}"},{"name":"meta.brace.round.livescript","match":"\\(|\\)"},{"name":"meta.brace.square.livescript","match":"\\[|\\]\\s*"},{"include":"#instance_variable"},{"include":"#backslash_string"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"},{"match":"()(@|@@|[$\\w\\-]*[$\\w]+)\\s*(`)","captures":{"1":{"name":"keyword.operator.livescript"},"2":{"name":"meta.function-call.livescript"},"3":{"name":"keyword.operator.livescript"}}},{"name":"keyword.operator.livescript","match":"`"},{"match":"()(@|@@|[$\\w\\-]*[$\\w]+)(?:(\\??\\!)|[(])","captures":{"1":{"name":"keyword.operator.livescript"},"2":{"name":"meta.function-call.livescript"},"3":{"name":"keyword.operator.livescript"}}},{"match":"(@|@@|[$\\w\\-]*[$\\w]+)(\\?)? (?!\\s*(((by|of|and|or|with|when|unless|if|is|isnt|else|nobreak|for|from|not in|in|catch|til|to|then|import|extends|implements|instanceof)\\b)|[=:.*\\/+\\-%\\^\u003c\u003e][ =)]|[`}%*)]|/(?!.*?/)|\u0026\u0026|[.][^.]|=\u003e|\\/ +|\\||\\|\\||\\-\\-|\\+\\+|\\|\u003e|\u003c|\\||$|\\n|\\#|/\\*))","captures":{"1":{"name":"meta.function-call.livescript"},"2":{"name":"keyword.operator.livescript"}}},{"name":"keyword.control.livescript","match":"\\| _"},{"name":"keyword.control.livescript","match":"\\|(?![.])"},{"name":"keyword.operator.livescript","match":"\\|"},{"name":"support.function.console.livescript","match":"((?\u003c=console\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\b"},{"name":"support.function.livescript","match":"(?x)\\b(\n\t\t\t\tdecodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require\n\t\t\t)\\b"},{"name":"support.function.prelude.livescript","match":"(?x)(?\u003c![.-])\\b(\n\t\t\t\tmap|filter|reject|partition|find|each|head|tail|last|initial|empty|\n\t\t\t\tvalues|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|\n\t\t\t\tand(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|\n\t\t\t\tconcat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|\n\t\t\t\tsplit(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|\n\t\t\t\tbreak(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|\n\t\t\t\tpairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|\n\t\t\t\tzip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|\n\t\t\t\tsort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|\n\t\t\t\tdifference|intersection|union|average|flatten|chars|unchars|repeat|\n\t\t\t\tlines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|\n\t\t\t\trecip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|\n\t\t\t\tround|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id\n\t\t\t)\\b(?![.-])"},{"name":"support.function.semireserved.livescript","match":"(?x)(?\u003c![.-])\\b(that|it|e|_)\\b"},{"name":"support.function.method.array.livescript","match":"(?x)((?\u003c=(\\.|\\]|\\)))(\n\t\t\t\tapply|call|concat|every|filter|for(Each|-each)|\n\t\t\t\tfrom|has(Own|-own)(Property|-property)|index(Of|-of)|\n\t\t\t\tis(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|\n\t\t\t\tmap|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|\n\t\t\t\treduce(Right|-right)?|reverse|shift|slice|some|sort|\n\t\t\t\tsplice|to(Locale|-locale)?(String|-string)|unshift|valueOf\n\t\t\t))\\b(?!-) "},{"name":"support.function.static.array.livescript","match":"(?x)((?\u003c=Array\\.)(\n\t\t\t\tisArray\n\t\t\t))\\b"},{"name":"support.function.static.object.livescript","match":"(?x)((?\u003c=Object\\.)(\n\t\t\t\tcreate|define(Propert|-propert)(ies|y)|freeze|\n\t\t\t\tget(Own|-own)(Property|-property)(Descriptors?|Names)|\n\t\t\t\tget(Property|-property)(Descriptor|Names)|getPrototypeOf|\n\t\t\t\tis((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|\n\t\t\t\tkeys|prevent(Extensions|-extensions)|seal\n\t\t\t))\\b"},{"name":"support.function.static.math.livescript","match":"(?x)((?\u003c=Math\\.)(\n\t\t\t\tabs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\n\t\t\t\thypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\n\t\t\t\ttan|tanh|trunc\n\t\t\t))\\b"},{"name":"support.function.static.number.livescript","match":"(?x)((?\u003c=Number\\.)(\n\t\t\t\tis(Finite|Integer|NaN)|to(Integer|-integer)\n\t\t\t))\\b"},{"name":"variable.other.livescript","match":"[\\$\\w][\\w-]*"}],"repository":{"backslash_string":{"patterns":[{"contentName":"string.quoted.single.livescript","begin":"\\\\([\\\\)\\s,\\};\\]])?","end":"([\\\\)\\s,\\};\\]])","beginCaptures":{"0":{"name":"string.quoted.single.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}}]},"constructor_variable":{"patterns":[{"name":"variable.other.readwrite.constructor.livescript","match":"([a-zA-Z$_][\\w$-]*)(@{2})([a-zA-Z$_][\\w$-]*)?"}]},"double_quoted_string":{"patterns":[{"name":"string.quoted.double.livescript","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{"include":"#interpolated_livescript"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}}]},"embedded_comment":{"patterns":[{"name":"comment.line.number-sign.livescript","match":"(?\u003c!\\\\)(#).*$\\n","captures":{"1":{"name":"punctuation.definition.comment.livescript"}}}]},"embedded_spaced_comment":{"patterns":[{"name":"comment.line.number-sign.livescript","match":"(?\u003c!\\\\)(#\\s).*$\\n","captures":{"1":{"name":"punctuation.definition.comment.livescript"}}}]},"instance_variable":{"patterns":[{"name":"variable.other.readwrite.instance.livescript","match":"(?\u003c![$\\w\\-])(@)"}]},"interpolated_livescript":{"patterns":[{"name":"source.livescript.embedded.source","begin":"\\#\\{","end":"\\}","patterns":[{"include":"$self"}],"captures":{"0":{"name":"punctuation.section.embedded.livescript"}}},{"name":"source.livescript.embedded.source.simple","match":"#([a-zA-Z$_-]+|@)","begin":"\\#","patterns":[{"include":"$self"}]}]},"numeric":{"patterns":[{"name":"constant.numeric.livescript","match":"(?\u003c![\\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\\.[0-9]+[0-9_]*)?(e[+\\-]?[0-9_]+)?)[_a-zA-Z0-9]*)"}]},"single_quoted_string":{"patterns":[{"name":"string.quoted.single.livescript","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}}]},"variable_name":{"patterns":[{"name":"variable.assignment.livescript","match":"([a-zA-Z\\$_][\\w$-]*(\\.\\w+)*)(?!\\-)","captures":{"1":{"name":"variable.assignment.livescript"}}}]}}}
|
1
|
+
{"name":"LiveScript","scopeName":"source.livescript","patterns":[{"name":"storage.type.function.livescript","match":"(?x)\n\t\t\t\t!?[~-]{1,2}\u003e\\*?\n\t\t\t\t|\u003c[~-]{1,2}!?\n\t\t\t\t|\\(\\s* (?= instanceof[\\s)]|and[\\s)]|or[\\s)]|is[\\s)]|isnt[\\s)]|in[\\s)]|import[\\s)]|import\\ all[\\s)] |\\.|[-+/*%^\u0026\u003c\u003e=|][\\b\\s)\\w$]|\\*\\*|\\%\\%)\n\t\t\t\t| (?\u003c=[\\s(]instanceof|[\\s(]and|[\\s(]or|[\\s(]is|[\\s(]isnt|[\\s(]in|[\\s(]import|[\\s(]import\\ all|[\\s(]do|\\.|\\*\\*|\\%\\%|[\\b\\s(\\w$][-+/*%^\u0026\u003c\u003e=|]) \\s*\\)\n\t\t\t"},{"name":"comment.block.livescript","begin":"\\/\\*","end":"\\*\\/","patterns":[{"name":"storage.type.annotation.livescriptscript","match":"@\\w*"}],"captures":{"0":{"name":"punctuation.definition.comment.livescript"}}},{"name":"comment.line.number-sign.livescript","match":"(#)(?!\\{).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.livescript"}}},{"match":"((?:!|~|!~|~!)?function\\*?)\\s+([$\\w\\-]*[$\\w]+)","captures":{"1":{"name":"storage.type.function.livescript"},"2":{"name":"entity.name.function.livescript"}}},{"match":"(new)\\s+(\\w+(?:\\.\\w*)*)","captures":{"1":{"name":"keyword.operator.new.livescript"},"2":{"name":"entity.name.type.instance.livescript"}}},{"name":"keyword.illegal.livescript","match":"\\b(package|private|protected|public|interface|enum|static)(?!-)\\b"},{"name":"string.quoted.heredoc.livescript","begin":"'''","end":"'''","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}},{"name":"string.quoted.double.heredoc.livescript","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\."},{"include":"#interpolated_livescript"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}},{"name":"string.quoted.script.livescript","begin":"``","end":"``","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}},{"name":"string.array-literal.livescript","begin":"\u003c\\[","end":"\\]\u003e"},{"name":"string.regexp.livescript","match":"/{2}(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}"},{"name":"string.regexp.livescript","begin":"/{2}\\n","end":"/{2}[imgy]{0,4}","patterns":[{"include":"#embedded_spaced_comment"},{"include":"#interpolated_livescript"}]},{"name":"string.regexp.livescript","begin":"/{2}","end":"/{2}[imgy]{0,4}","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{"include":"#interpolated_livescript"}]},{"name":"string.regexp.livescript","match":"/(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])"},{"name":"keyword.operator.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(\n\t\t\t\t\tinstanceof|new|delete|typeof|and|or|is|isnt|not\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"name":"keyword.operator.livescript","match":"\u003c\\||\\|\u003e"},{"name":"keyword.control.livescript","match":"=\u003e"},{"name":"keyword.control.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(?:\n\t\t\t\treturn|break|continue|throw\n\t\t\t\t|try|if|while|for|for\\s+own|switch|unless|until\n\t\t\t\t|catch|finally|else|nobreak|case|default|fallthrough|when|otherwise|then\n\t\t\t\t|yield\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"name":"keyword.operator.livescript","match":"(?x)\n\t\t\t\tand=|or=|%|\u0026|\\^|\\*|\\/|(?\u003c![a-zA-Z$_])(\\-)?\\-(?!\\-?\u003e)|\\+\\+|\\+|\n\t\t\t\t~(?!~?\u003e)|==|=|!=|\u003c=|\u003e=|\u003c\u003c=|\u003e\u003e=|\n\t\t\t\t\u003e\u003e\u003e=|\u003c\u003e|\u003c(?!\\[)|(?\u003c!\\])\u003e|(?\u003c!\\w)!(?!([~\\-]+)?\u003e)|\u0026\u0026|\\.\\.(\\.)?|\\s\\.\\s|\\?|\\|\\||\\:|\\*=|(?\u003c!\\()/=|%=|\\+=|\\-=|\\.=|\u0026=\n\t\t\t\t|\\^=\n\t\t\t"},{"name":"storage.type.function.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(?:\n\t\t\t\tfunction\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"name":"keyword.other.livescript","match":"(?x)\n\t\t\t\t\\b(?\u003c![\\.\\$\\-@])(?:\n\t\t\t\tthis|throw|then|try|typeof!?|til|to\n\t\t\t\t|continue|const|case|catch|class\n\t\t\t\t|in|instanceof|import|import\\s+all|implements|if|is\n\t\t\t\t|default|delete|debugger|do\n\t\t\t\t|for|for\\s+own|finally|function|from|fallthrough\n\t\t\t\t|super|switch\n\t\t\t\t|else|nobreak|extends|export|eval\n\t\t\t\t|and|arguments\n\t\t\t\t|new|not\n\t\t\t\t|unless|until\n\t\t\t\t|while|with|when\n\t\t\t\t|of|or|otherwise\n\t\t\t\t|let|var|loop\n\t\t\t\t|match\n\t\t\t\t|by|yield\n\t\t\t\t)(?!\\-|\\s*:)\\b\n\t\t\t"},{"match":"([a-zA-Z\\$_](?:[\\w$.-])*)\\s*(?!\\::)((:)|(=(?!\u003e)))\\s*(?!(\\s*!?\\s*\\(.*\\))?\\s*(!?[~-]{1,2}\u003e\\*?))","captures":{"1":{"name":"variable.assignment.livescript"},"3":{"name":"punctuation.separator.key-value, keyword.operator.livescript"},"4":{"name":"keyword.operator.livescript"}}},{"name":"meta.variable.assignment.destructured.livescript","begin":"(?\u003c=\\s|^)([\\[\\{])(?=.*?[\\]\\}]\\s+[:=])","end":"([\\]\\}]\\s*[:=])","patterns":[{"include":"#variable_name"},{"include":"#instance_variable"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"}],"beginCaptures":{"0":{"name":"keyword.operator.livescript"}},"endCaptures":{"0":{"name":"keyword.operator.livescript"}}},{"name":"meta.function.livescript","match":"(?x)\n\t\t\t\t(\\s*)\n\t\t\t\t(?=[a-zA-Z\\$_])\n\t\t\t\t([a-zA-Z\\$_]([\\w$.:-])*)\\s*\n\t\t\t\t(?=[:=](\\s*!?\\s*\\(.*\\))?\\s*(!?[~-]{1,2}\u003e\\*?))\n\t\t\t","captures":{"2":{"name":"entity.name.function.livescript"},"3":{"name":"entity.name.function.livescript"},"4":{"name":"variable.parameter.function.livescript"},"5":{"name":"storage.type.function.livescript"}}},{"name":"constant.language.boolean.true.livescript","match":"\\b(?\u003c!\\.)(true|on|yes)(?!\\s*:)\\b"},{"name":"constant.language.boolean.false.livescript","match":"\\b(?\u003c!\\.)(false|off|no)(?!\\s*:)\\b"},{"name":"constant.language.null.livescript","match":"\\b(?\u003c!\\.)(null|void)(?!\\s*:)\\b"},{"name":"variable.language.livescript","match":"\\b(?\u003c!\\.)(super|this|extends)(?!\\s*:)\\b"},{"name":"meta.class.livescript","match":"(class\\b)\\s+(@?[a-zA-Z$_][\\w$.-]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z$_][\\w$.-]*))?","captures":{"1":{"name":"storage.type.class.livescript"},"2":{"name":"entity.name.type.class.livescript"},"3":{"name":"keyword.control.inheritance.livescript"},"4":{"name":"entity.other.inherited-class.livescript"}}},{"name":"keyword.other.livescript","match":"\\b(debugger|\\\\)\\b"},{"name":"support.class.livescript","match":"(?x)\\b(\n\t\t\t\tArray|ArrayBuffer|Blob|Boolean|Date|document|event|Function|\n\t\t\t\tInt(8|16|32|64)Array|Math|Map|Number|\n\t\t\t\tObject|Proxy|RegExp|Set|String|WeakMap|\n\t\t\t\twindow|Uint(8|16|32|64)Array|XMLHttpRequest\n\t\t\t)\\b"},{"name":"entity.name.type.object.livescript","match":"\\b(console)\\b"},{"name":"constant.language.livescript","match":"\\b(Infinity|NaN|undefined)\\b"},{"name":"punctuation.terminator.statement.livescript","match":"\\;"},{"name":"meta.delimiter.object.comma.livescript","match":",[ |\\t]*"},{"name":"meta.delimiter.method.period.livescript","match":"\\."},{"name":"meta.brace.curly.livescript","match":"\\{|\\}"},{"name":"meta.brace.round.livescript","match":"\\(|\\)"},{"name":"meta.brace.square.livescript","match":"\\[|\\]\\s*"},{"include":"#instance_variable"},{"include":"#backslash_string"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"},{"match":"()(@|@@|[$\\w\\-]*[$\\w]+)\\s*(`)","captures":{"1":{"name":"keyword.operator.livescript"},"2":{"name":"meta.function-call.livescript"},"3":{"name":"keyword.operator.livescript"}}},{"name":"keyword.operator.livescript","match":"`"},{"match":"()(@|@@|[$\\w\\-]*[$\\w]+)(?:(\\??\\!)|[(])","captures":{"1":{"name":"keyword.operator.livescript"},"2":{"name":"meta.function-call.livescript"},"3":{"name":"keyword.operator.livescript"}}},{"match":"(@|@@|[$\\w\\-]*[$\\w]+)(\\?)? (?!\\s*(((by|of|and|or|with|when|unless|if|is|isnt|else|nobreak|for|from|not in|in|catch|til|to|then|import|extends|implements|instanceof)\\b)|[=:.*\\/+\\-%\\^\u003c\u003e][ =)]|[`}%*)]|/(?!.*?/)|\u0026\u0026|[.][^.]|=\u003e|\\/ +|\\||\\|\\||\\-\\-|\\+\\+|\\|\u003e|\u003c|\\||$|\\n|\\#|/\\*))","captures":{"1":{"name":"meta.function-call.livescript"},"2":{"name":"keyword.operator.livescript"}}},{"name":"keyword.control.livescript","match":"\\| _"},{"name":"keyword.control.livescript","match":"\\|(?![.])"},{"name":"keyword.operator.livescript","match":"\\|"},{"name":"support.function.console.livescript","match":"((?\u003c=console\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\b"},{"name":"support.function.livescript","match":"(?x)\\b(\n\t\t\t\tdecodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require\n\t\t\t)\\b"},{"name":"support.function.prelude.livescript","match":"(?x)(?\u003c![.-])\\b(\n\t\t\t\tmap|filter|reject|partition|find|each|head|tail|last|initial|empty|\n\t\t\t\tvalues|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|\n\t\t\t\tand(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|\n\t\t\t\tconcat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|\n\t\t\t\tsplit(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|\n\t\t\t\tbreak(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|\n\t\t\t\tpairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|\n\t\t\t\tzip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|\n\t\t\t\tsort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|\n\t\t\t\tdifference|intersection|union|average|flatten|chars|unchars|repeat|\n\t\t\t\tlines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|\n\t\t\t\trecip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|\n\t\t\t\tround|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id\n\t\t\t)\\b(?![.-])"},{"name":"support.function.semireserved.livescript","match":"(?x)(?\u003c![.-])\\b(that|it|e|_)\\b"},{"name":"support.function.method.array.livescript","match":"(?x)((?\u003c=(\\.|\\]|\\)))(\n\t\t\t\tapply|call|concat|every|filter|for(Each|-each)|\n\t\t\t\tfrom|has(Own|-own)(Property|-property)|index(Of|-of)|\n\t\t\t\tis(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|\n\t\t\t\tmap|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|\n\t\t\t\treduce(Right|-right)?|reverse|shift|slice|some|sort|\n\t\t\t\tsplice|to(Locale|-locale)?(String|-string)|unshift|valueOf\n\t\t\t))\\b(?!-) "},{"name":"support.function.static.array.livescript","match":"(?x)((?\u003c=Array\\.)(\n\t\t\t\tisArray\n\t\t\t))\\b"},{"name":"support.function.static.object.livescript","match":"(?x)((?\u003c=Object\\.)(\n\t\t\t\tcreate|define(Propert|-propert)(ies|y)|freeze|\n\t\t\t\tget(Own|-own)(Property|-property)(Descriptors?|Names)|\n\t\t\t\tget(Property|-property)(Descriptor|Names)|getPrototypeOf|\n\t\t\t\tis((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|\n\t\t\t\tkeys|prevent(Extensions|-extensions)|seal\n\t\t\t))\\b"},{"name":"support.function.static.math.livescript","match":"(?x)((?\u003c=Math\\.)(\n\t\t\t\tabs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\n\t\t\t\thypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\n\t\t\t\ttan|tanh|trunc\n\t\t\t))\\b"},{"name":"support.function.static.number.livescript","match":"(?x)((?\u003c=Number\\.)(\n\t\t\t\tis(Finite|Integer|NaN)|to(Integer|-integer)\n\t\t\t))\\b"},{"name":"variable.other.livescript","match":"[\\$\\w][\\w-]*"}],"repository":{"backslash_string":{"patterns":[{"contentName":"string.quoted.single.livescript","begin":"\\\\([\\\\)\\s,\\};\\]])?","end":"(?=[\\\\)\\s,\\};\\]])","beginCaptures":{"0":{"name":"string.quoted.single.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}}]},"constructor_variable":{"patterns":[{"name":"variable.other.readwrite.constructor.livescript","match":"([a-zA-Z$_][\\w$-]*)(@{2})([a-zA-Z$_][\\w$-]*)?"}]},"double_quoted_string":{"patterns":[{"name":"string.quoted.double.livescript","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"},{"include":"#interpolated_livescript"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}}]},"embedded_comment":{"patterns":[{"name":"comment.line.number-sign.livescript","match":"(?\u003c!\\\\)(#).*$\\n","captures":{"1":{"name":"punctuation.definition.comment.livescript"}}}]},"embedded_spaced_comment":{"patterns":[{"name":"comment.line.number-sign.livescript","match":"(?\u003c!\\\\)(#\\s).*$\\n","captures":{"1":{"name":"punctuation.definition.comment.livescript"}}}]},"instance_variable":{"patterns":[{"name":"variable.other.readwrite.instance.livescript","match":"(?\u003c![$\\w\\-])(@)"}]},"interpolated_livescript":{"patterns":[{"name":"source.livescript.embedded.source","begin":"\\#\\{","end":"\\}","patterns":[{"include":"$self"}],"captures":{"0":{"name":"punctuation.section.embedded.livescript"}}},{"name":"source.livescript.embedded.source.simple","match":"#([a-zA-Z$_-]+|@)","begin":"\\#","patterns":[{"include":"$self"}]}]},"numeric":{"patterns":[{"name":"constant.numeric.livescript","match":"(?\u003c![\\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\\.[0-9]+[0-9_]*)?(e[+\\-]?[0-9_]+)?)[_a-zA-Z0-9]*)"}]},"single_quoted_string":{"patterns":[{"name":"string.quoted.single.livescript","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.livescript","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.livescript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.livescript"}}}]},"variable_name":{"patterns":[{"name":"variable.assignment.livescript","match":"([a-zA-Z\\$_][\\w$-]*(\\.\\w+)*)(?!\\-)","captures":{"1":{"name":"variable.assignment.livescript"}}}]}}}
|
data/grammars/source.mo.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Swift","scopeName":"source.mo","patterns":[{"include":"#shebang-line"},{"include":"#comment"},{"include":"#attribute"},{"include":"#literal"},{"include":"#operator"},{"include":"#declaration"},{"include":"#storage-type"},{"include":"#keyword"},{"include":"#type"},{"include":"#boolean"}],"repository":{"access-level-modifier":{"name":"keyword.other.access-level-modifier.swift","match":"\\b(public|system|private)\\b"},"arithmetic-operator":{"name":"keyword.operator.arithmetic.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"array-type":{"name":"meta.array.swift","begin":"\\b(Array)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.array.swift"},"2":{"name":"punctuation.array.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.array.end.swift"}}},"assignment-operator":{"name":"keyword.operator.assignment.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/|%|\u003c\u003c|\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)?=(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"attribute":{"name":"meta.attribute.swift","patterns":[{"contentName":"meta.attribute.arguments.swift","begin":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))(\\()","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.attribute-arguments.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.attribute-arguments.end.swift"}}},{"match":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))","captures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"}}}]},"bitwise-operator":{"name":"keyword.operator.bitwise.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026|\\||\\^|\u003c\u003c|\u003e\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"block-comment":{"name":"comment.block.swift","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.swift"}}},"boolean":{"name":"keyword.constant.boolean.swift","match":"\\b(true|false)\\b"},"branch-statement-keyword":{"name":"keyword.control.branch.swift","patterns":[{"include":"#if-statement-keyword"},{"include":"#switch-statement-keyword"}]},"catch-statement-keyword":{"name":"kewyord.control.catch.swift","match":"\\b(catch|do)\\b"},"code-block":{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.code-block.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.code-block.end.swift"}}},"collection-type":{"patterns":[{"include":"#array-type"},{"include":"#dictionary-type"},{"name":"support.type.swift","match":"\\b(Array|Dictionary)\\b"}]},"comment":{"patterns":[{"include":"#documentation-comment"},{"include":"#block-comment"},{"include":"#in-line-comment"}]},"comparative-operator":{"name":"keyword.operator.comparative.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])((=|!)==?|(\u003c|\u003e)=?|~=)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"control-transfer-statement-keyword":{"name":"keyword.control.transfer.swift","match":"\\b(continue|break|fallthrough|return)\\b"},"custom-operator":{"patterns":[{"name":"keyword.operator.custom.prefix.unary.swift","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:])"},{"name":"keyword.operator.custom.postfix.unary.swift","match":"(?\u003c![\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:\\.])"},{"name":"keyword.operator.custom.binary.swift","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?=[\\s)\\]},;:])"}]},"declaration":{"name":"meta.declaration.swift","patterns":[{"include":"#import-declaration"},{"include":"#function-declaration"}]},"declaration-modifier":{"name":"keyword.other.declaration-modifier.swift","match":"\\b(class|object|type|shared|convenience|dynamic|final|lazy|(non)?mutating|optional|override|required|static|unowned((un)?safe)?|weak)\\b"},"dictionary-type":{"name":"meta.dictionary.swift","begin":"\\b(Dictionary)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.dictionary.swift"},"2":{"name":"punctuation.dictionary.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.dictionary.end.swift"}}},"documentation-comment":{"name":"comment.block.documentation.swift","begin":"/\\*\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.begin.swift"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.end.swift"}}},"floating-point-literal":{"name":"constant.numeric.floating-point.swift","patterns":[{"match":"\\b([0-9][0-9_]*)(\\.([0-9][0-9_]*))?([eE][+\\-]?([0-9][0-9_]*))?\\b"},{"match":"\\b(0x[[:xdigit:]][[[:xdigit:]]_]*)(\\.(0x[[:xdigit:]][[[:xdigit:]]_]*))?([pP][+\\-]?(0x[[:xdigit:]][[[:xdigit:]]_]*))\\b"}]},"function-body":{"name":"meta.function-body.swift","patterns":[{"include":"#code-block"}]},"function-declaration":{"name":"meta.function-declaration.swift","begin":"\\b(func)\\s+(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})","patterns":[{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.type.function.swift"}}},"function-result":{"name":"meta.function-result.swift","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"\\s*(?=\\{)","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.swift"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.swift","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.end.swift"}}},"identifier":{"name":"meta.identifier.swift","match":"(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B)"},"if-statement-keyword":{"name":"keyword.control.if.swift","match":"\\b(if|else)\\b"},"import-declaration":{"name":"meta.import.swift","match":"\\b(import)\\s+(?:(class|var|func)\\s+)?((?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)(?:\\.(?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+))*)","captures":{"1":{"name":"keyword.other.import.swift"},"2":{"name":"storage.modifier.swift"},"3":{"name":"support.type.module.import.swift"}}},"in-line-comment":{"name":"comment.line.double-slash.swift","match":"(//).*","captures":{"1":{"name":"punctuation.definition.comment.line.double-slash.swift"}}},"increment-decrement-operator":{"name":"keyword.operator.increment-or-decrement.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+\\+|\\-\\-)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"integer-literal":{"name":"constant.numeric.integer.swift","patterns":[{"name":"constant.numeric.integer.binary.swift","match":"(\\B\\-|\\b)(0b[01][01_]*)\\b"},{"name":"constant.numeric.integer.octal.swift","match":"(\\B\\-|\\b)(0o[0-7][0-7_]*)\\b"},{"name":"constant.numeric.integer.decimal.swift","match":"(\\B\\-|\\b)([0-9][0-9_]*)\\b"},{"name":"constant.numeric.integer.hexadecimal.swift","match":"(\\B\\-|\\b)(0x[[:xdigit:]][[[:xdigit:]]_]*)\\b"}]},"integer-type":{"name":"support.type.swift","match":"\\bU?Int(8|16|32|64)?\\b"},"keyword":{"patterns":[{"include":"#branch-statement-keyword"},{"include":"#control-transfer-statement-keyword"},{"include":"#loop-statement-keyword"},{"include":"#catch-statement-keyword"},{"include":"#operator-declaration-modifier"},{"include":"#declaration-modifier"},{"include":"#access-level-modifier"},{"name":"keyword.declaration.swift","match":"\\b(async|actor|and|class|func|import|let|module|not|or)\\b"},{"name":"keyword.statement.swift","match":"\\b(assert|async|await|break|case|continue|default|debug|debug_show|else|if|ignore|in|for|label|return|switch|while|loop|try|throw)\\b"},{"name":"keyword.other.swift","match":"\\b(flexible|query|stable)\\b"}]},"literal":{"patterns":[{"include":"#integer-literal"},{"include":"#floating-point-literal"},{"include":"#nil-literal"},{"include":"#string-literal"},{"include":"#special-literal"}]},"logical-operator":{"name":"keyword.operator.logical.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(!|\u0026\u0026|\\|\\|)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"loop-statement-keyword":{"name":"keyword.control.loop.swift","match":"\\b(while|repeat|for|in|loop)\\b"},"nil-literal":{"name":"constant.nil.swift","match":"\\bnil\\b"},"operator":{"patterns":[{"include":"#comparative-operator"},{"include":"#assignment-operator"},{"include":"#logical-operator"},{"include":"#remainder-operator"},{"include":"#increment-decrement-operator"},{"include":"#overflow-operator"},{"include":"#range-operator"},{"include":"#bitwise-operator"},{"include":"#arithmetic-operator"},{"include":"#ternary-operator"},{"include":"#type-casting-operator"},{"include":"#custom-operator"}]},"operator-declaration-modifier":{"name":"keyword.other.operator.swift","match":"\\b(operator|prefix|infix|postfix)\\b"},"optional-type":{"name":"meta.optional.swift","match":"\\b(Optional)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.optional.swift"},"2":{"name":"punctuation.optional.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.optional.end.swift"}}},"overflow-operator":{"name":"keyword.operator.overflow.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\\u0026(\\+|\\-|\\*|\\/|%)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"parameter-clause":{"name":"meta.parameter-clause.swift","begin":"(\\()","end":"(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.function-arguments.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.definition.function-arguments.end.swift"}}},"primitive-type":{"name":"support.type.swift","match":"\\b[A-Z].*?\\b"},"protocol-composition-type":{"name":"meta.protocol.swift","match":"\\b(protocol)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.protocol.swift"},"2":{"name":"punctuation.protocol.begin.swift"}},"endCaptures":{"1":{"name":"punctuation.protocol.end.swift"}}},"range-operator":{"name":"keyword.operator.range.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\.\\.(?:\\.)?(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"remainder-operator":{"name":"keyword.operator.remainder.swift","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\%(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"shebang-line":{"name":"comment.line.shebang.swift","match":"^(#!).*$","captures":{"1":{"name":"punctuation.definition.comment.line.shebang.swift"}}},"special-literal":{"name":"keyword.other.literal.swift","match":"\\b__(FILE|LINE|COLUMN|FUNCTION)__\\b"},"storage-type":{"name":"storage.type.swift","match":"\\b(var|func|let|class|enum)\\b"},"string-literal":{"name":"meta.literal.string.swift","begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.swift","match":"\\\\([0tnr\\\"\\'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"},{"contentName":"meta.expression.swift","begin":"(\\\\\\()","end":"(\\))","patterns":[{"include":"source.swift"}],"beginCaptures":{"1":{"name":"support.punctuation.expression.begin.swift"}},"endCaptures":{"1":{"name":"support.punctuation.expression.end.swift"}}},{"name":"invalid.illegal.swift","match":"(\\\"|\\\\)"},{"name":"string.quoted.double.swift","match":"(.)"}],"beginCaptures":{"0":{"name":"string.quoted.double.swift"}},"endCaptures":{"0":{"name":"string.quoted.double.swift"}}},"switch-statement-keyword":{"name":"keyword.control.switch.swift","match":"\\b(switch|case|default|where)\\b"},"ternary-operator":{"name":"keyword.operator.ternary.swift","match":"(?\u003c=[\\s(\\[{,;:])(\\?|:)(?=[\\s)\\]},;:])"},"type":{"patterns":[{"include":"#primitive-type"},{"include":"#integer-type"},{"include":"#collection-type"},{"include":"#optional-type"},{"include":"#protocol-composition-type"}]},"type-casting-operator":{"name":"keyword.operator.type-casting.swift","match":"\\b(is\\b|as(\\?\\B|\\b))"}}}
|
1
|
+
{"name":"Motoko","scopeName":"source.mo","patterns":[{"include":"#shebang-line"},{"include":"#comment"},{"include":"#attribute"},{"include":"#literal"},{"include":"#operator"},{"include":"#declaration"},{"include":"#storage-type"},{"include":"#keyword"},{"include":"#type"},{"include":"#boolean"}],"repository":{"access-level-modifier":{"name":"keyword.other.access-level-modifier.motoko","match":"\\b(public|system|private)\\b"},"arithmetic-operator":{"name":"keyword.operator.arithmetic.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"array-type":{"name":"meta.array.motoko","begin":"\\b(Array)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.array.motoko"},"2":{"name":"punctuation.array.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.array.end.motoko"}}},"assignment-operator":{"name":"keyword.operator.assignment.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+|\\-|\\*|\\/|%|\u003c\u003c|\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)?=(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"async-await-keyword":{"name":"keyword.async-await.motoko","match":"\\b(async|await)\\b"},"attribute":{"name":"meta.attribute.motoko","patterns":[{"contentName":"meta.attribute.arguments.motoko","begin":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))(\\()","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.motoko"},"2":{"name":"punctuation.definition.attribute.motoko"},"3":{"name":"punctuation.definition.attribute-arguments.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.attribute-arguments.end.motoko"}}},{"match":"((@)(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B))","captures":{"1":{"name":"storage.modifier.attribute.motoko"},"2":{"name":"punctuation.definition.attribute.motoko"}}}]},"bitwise-operator":{"name":"keyword.operator.bitwise.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026|\\||\\^|\u003c\u003c|\u003e\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"block-comment":{"name":"comment.block.motoko","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.motoko"}}},"boolean":{"name":"keyword.constant.boolean.motoko","match":"\\b(true|false)\\b"},"branch-statement-keyword":{"name":"keyword.control.branch.motoko","patterns":[{"include":"#if-statement-keyword"},{"include":"#switch-statement-keyword"}]},"catch-statement-keyword":{"name":"kewyord.control.catch.motoko","match":"\\b(catch|do)\\b"},"code-block":{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.code-block.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.code-block.end.motoko"}}},"comment":{"patterns":[{"include":"#documentation-comment"},{"include":"#block-comment"},{"include":"#in-line-comment"}]},"comparative-operator":{"name":"keyword.operator.comparative.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])((=|!)==?|(\u003c|\u003e)=?|~=)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"control-transfer-statement-keyword":{"name":"keyword.control.transfer.motoko","match":"\\b(continue|break|return)\\b"},"custom-operator":{"patterns":[{"name":"keyword.operator.custom.prefix.unary.motoko","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:])"},{"name":"keyword.operator.custom.postfix.unary.motoko","match":"(?\u003c![\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?![\\s)\\]},;:\\.])"},{"name":"keyword.operator.custom.binary.motoko","match":"(?\u003c=[\\s(\\[{,;:])([/=\\-+!*%\u003c\u003e\u0026|\\^~.]++)(?=[\\s)\\]},;:])"}]},"declaration":{"name":"meta.declaration.motoko","patterns":[{"include":"#import-declaration"}]},"declaration-modifier":{"name":"keyword.other.declaration-modifier.motoko","match":"\\b(class|object|type|shared)\\b"},"dictionary-type":{"name":"meta.dictionary.motoko","begin":"\\b(Dictionary)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.dictionary.motoko"},"2":{"name":"punctuation.dictionary.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.dictionary.end.motoko"}}},"documentation-comment":{"name":"comment.block.documentation.motoko","begin":"/\\*\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.begin.motoko"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.documentation.end.motoko"}}},"floating-point-literal":{"name":"constant.numeric.floating-point.motoko","patterns":[{"match":"\\b([0-9][0-9_]*)(\\.([0-9][0-9_]*))?([eE][+\\-]?([0-9][0-9_]*))?\\b"},{"match":"\\b(0x[[:xdigit:]][[[:xdigit:]]_]*)(\\.(0x[[:xdigit:]][[[:xdigit:]]_]*))?([pP][+\\-]?(0x[[:xdigit:]][[[:xdigit:]]_]*))\\b"}]},"function-body":{"name":"meta.function-body.motoko","patterns":[{"include":"#code-block"}]},"function-declaration":{"name":"meta.function-declaration.motoko","begin":"\\b(func)\\s+(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})","patterns":[{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#function-body"}],"beginCaptures":{"1":{"name":"storage.type.function.motoko"},"2":{"name":"entity.type.function.motoko"}}},"function-result":{"name":"meta.function-result.motoko","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"\\s*(?=\\{)","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.motoko"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.motoko","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.generic-parameter-clause.end.motoko"}}},"identifier":{"name":"meta.identifier.motoko","match":"(\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B)"},"if-statement-keyword":{"name":"keyword.control.if.motoko","match":"\\b(if|else)\\b"},"import-declaration":{"name":"meta.import.motoko","match":"\\b(import)\\s+(?:(class|var|func)\\s+)?((?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+)(?:\\.(?:\\B\\$[0-9]+|\\b[\\w^\\d][\\w\\d]*\\b|\\B`[\\w^\\d][\\w\\d]*`\\B|[/=\\-+!*%\u003c\u003e\u0026|\\^~.]+))*)","captures":{"1":{"name":"keyword.other.import.motoko"},"2":{"name":"storage.modifier.motoko"},"3":{"name":"support.type.module.import.motoko"}}},"in-line-comment":{"name":"comment.line.double-slash.motoko","match":"(//).*","captures":{"1":{"name":"punctuation.definition.comment.line.double-slash.motoko"}}},"increment-decrement-operator":{"name":"keyword.operator.increment-or-decrement.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\\+\\+|\\-\\-)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"integer-literal":{"name":"constant.numeric.integer.motoko","patterns":[{"name":"constant.numeric.integer.binary.motoko","match":"(\\B\\-|\\b)(0b[01][01_]*)\\b"},{"name":"constant.numeric.integer.octal.motoko","match":"(\\B\\-|\\b)(0o[0-7][0-7_]*)\\b"},{"name":"constant.numeric.integer.decimal.motoko","match":"(\\B\\-|\\b)([0-9][0-9_]*)\\b"},{"name":"constant.numeric.integer.hexadecimal.motoko","match":"(\\B\\-|\\b)(0x[[:xdigit:]][[[:xdigit:]]_]*)\\b"}]},"keyword":{"patterns":[{"include":"#branch-statement-keyword"},{"include":"#control-transfer-statement-keyword"},{"include":"#loop-statement-keyword"},{"include":"#catch-statement-keyword"},{"include":"#async-await-keyword"},{"include":"#operator-declaration-modifier"},{"include":"#declaration-modifier"},{"include":"#access-level-modifier"},{"name":"keyword.declaration.motoko","match":"\\b(actor|and|class|func|import|let|module|not|or)\\b"},{"name":"keyword.statement.motoko","match":"\\b(assert|break|case|continue|default|debug|debug_show|else|if|ignore|in|for|label|return|switch|while|loop|try|throw|catch|do|to_candid|from_candid|with)\\b"},{"name":"keyword.other.motoko","match":"\\b(flexible|query|stable)\\b"}]},"literal":{"patterns":[{"include":"#integer-literal"},{"include":"#floating-point-literal"},{"include":"#nil-literal"},{"include":"#string-literal"},{"include":"#special-literal"}]},"logical-operator":{"name":"keyword.operator.logical.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(!|\u0026\u0026|\\|\\|)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"loop-statement-keyword":{"name":"keyword.control.loop.motoko","match":"\\b(while|repeat|for|in|loop)\\b"},"null-literal":{"name":"constant.null.motoko","match":"\\bnull\\b"},"operator":{"patterns":[{"include":"#comparative-operator"},{"include":"#assignment-operator"},{"include":"#logical-operator"},{"include":"#remainder-operator"},{"include":"#increment-decrement-operator"},{"include":"#overflow-operator"},{"include":"#range-operator"},{"include":"#bitwise-operator"},{"include":"#arithmetic-operator"},{"include":"#ternary-operator"},{"include":"#type-casting-operator"},{"include":"#custom-operator"}]},"operator-declaration-modifier":{"name":"keyword.other.operator.motoko","match":"\\b(operator|prefix|infix|postfix)\\b"},"optional-type":{"name":"meta.optional.motoko","match":"\\b(Optional)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.optional.motoko"},"2":{"name":"punctuation.optional.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.optional.end.motoko"}}},"overflow-operator":{"name":"keyword.operator.overflow.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\\u0026(\\+|\\-|\\*|\\/|%)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"parameter-clause":{"name":"meta.parameter-clause.motoko","begin":"(\\()","end":"(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.definition.function-arguments.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.definition.function-arguments.end.motoko"}}},"primitive-type":{"name":"support.type.motoko","match":"\\b(Blob|Bool|Char|Float|(Int|Nat)(8|16|32|64)?|Principal|Text|Error)\\b"},"protocol-composition-type":{"name":"meta.protocol.motoko","match":"\\b(protocol)(\u003c)","end":"(\u003e)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"support.type.protocol.motoko"},"2":{"name":"punctuation.protocol.begin.motoko"}},"endCaptures":{"1":{"name":"punctuation.protocol.end.motoko"}}},"range-operator":{"name":"keyword.operator.range.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\.\\.(?:\\.)?(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"remainder-operator":{"name":"keyword.operator.remainder.motoko","match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\%(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])"},"resolved-type":{"name":"support.type.motoko","match":"\\b[A-Z].*?\\b"},"shebang-line":{"name":"comment.line.shebang.motoko","match":"^(#!).*$","captures":{"1":{"name":"punctuation.definition.comment.line.shebang.motoko"}}},"special-literal":{"name":"keyword.other.literal.motoko","match":"\\b__(FILE|LINE|COLUMN|FUNCTION)__\\b"},"storage-type":{"name":"storage.type.motoko","match":"\\b(var|func|let|class|enum)\\b"},"string-literal":{"name":"meta.literal.string.motoko","begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.motoko","match":"\\\\([0tnr\\\"\\'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"},{"contentName":"meta.expression.motoko","begin":"(\\\\\\()","end":"(\\))","patterns":[{}],"beginCaptures":{"1":{"name":"support.punctuation.expression.begin.motoko"}},"endCaptures":{"1":{"name":"support.punctuation.expression.end.motoko"}}},{"name":"invalid.illegal.motoko","match":"(\\\"|\\\\)"},{"name":"string.quoted.double.motoko","match":"(.)"}],"beginCaptures":{"0":{"name":"string.quoted.double.motoko"}},"endCaptures":{"0":{"name":"string.quoted.double.motoko"}}},"switch-statement-keyword":{"name":"keyword.control.switch.motoko","match":"\\b(switch|case|default)\\b"},"type":{"patterns":[{"include":"#primitive-type"},{"include":"#resolved-type"},{"include":"#optional-type"},{"include":"#protocol-composition-type"}]}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"scopeName":"source.move","patterns":[{"include":"#address"},{"include":"#comments"},{"include":"#module"},{"include":"#script"},{"include":"#macros"}],"repository":{"address":{"name":"meta.address_block.move","begin":"\\b(address)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.address.definition.move","begin":"(?\u003c=address)","end":"(?=[{])","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"name":"entity.name.type.move","match":"\\b(\\w+)\\b"}]},{"include":"#module"}],"beginCaptures":{"1":{"name":"storage.modifier.type.address.keyword.move"}}},"address_literal":{"patterns":[{"name":"support.constant.diem.address.move","match":"\\b(0x[A-Fa-f0-9][A-Fa-f0-9]{,31})\\b"},{"name":"support.constant.dfinance.address.move","match":"\\b(wallet1\\w{38})"},{"name":"support.constant.named.address.move","match":"\\s([@]\\w+)\\b"}]},"as":{"name":"keyword.control.move","match":"\\b(as)\\b"},"as-import":{"name":"meta.import_as.move","match":"\\b(as)\\b"},"assert":{"name":"support.function.assert.move","match":"\\b(assert)\\b"},"block":{"name":"meta.block.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#as"},{"include":"#mut"},{"include":"#let"},{"include":"#types"},{"include":"#assert"},{"include":"#literals"},{"include":"#control"},{"include":"#move_copy"},{"include":"#resource_methods"},{"include":"#module_access"},{"include":"#fun_call"},{"include":"#block"}]},"block-comments":{"patterns":[{"name":"comment.block.documentation.move","begin":"/\\*[\\*!](?![\\*/])","end":"\\*/"},{"name":"comment.block.move","begin":"/\\*","end":"\\*/"}]},"comments":{"name":"meta.comments.move","patterns":[{"include":"#line-comments"},{"include":"#block-comments"}]},"const":{"name":"meta.const.move","begin":"\\b(const)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#primitives"},{"include":"#vector"},{"include":"#literals"},{"name":"constant.other.move","match":"\\b([\\w_]+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.const.move"}}},"control":{"name":"keyword.control.move","match":"\\b(return|while|loop|if|else|break|continue|abort)\\b"},"entry_fun":{"name":"meta.entry_fun.move","begin":"\\b(entry)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"storage.modifier.native.move","match":"\\b(native)\\b"},{"name":"storage.modifier.public.move","match":"\\b(public)\\b"},{"include":"#fun"}],"beginCaptures":{"1":{"name":"storage.modifier.entry.move"}}},"friend":{"name":"meta.friend.move","begin":"\\b(friend)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"name":"entity.name.type.module.move","match":"\\b(\\w+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"fun":{"patterns":[{"include":"#fun_signature"},{"include":"#fun_body"}]},"fun_body":{"name":"meta.fun_body.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#import"},{"include":"#as"},{"include":"#mut"},{"include":"#let"},{"include":"#types"},{"include":"#assert"},{"include":"#literals"},{"include":"#control"},{"include":"#move_copy"},{"include":"#resource_methods"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#fun_call"},{"include":"#block"}]},"fun_call":{"name":"meta.fun_call.move","begin":"\\b(\\w+)\\s*(?:\u003c[\\w\\s,]+\u003e)?\\s*[(]","end":"[)]","patterns":[{"include":"#comments"},{"include":"#resource_methods"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#move_copy"},{"include":"#literals"},{"include":"#fun_call"},{"include":"#block"},{"include":"#mut"},{"include":"#as"}],"beginCaptures":{"1":{"name":"entity.name.function.call.move"}}},"fun_signature":{"name":"meta.fun_signature.move","begin":"\\b(fun)\\b","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#module_access"},{"include":"#types"},{"include":"#mut"},{"name":"meta.function_name.move","begin":"(?\u003c=fun)","end":"(?=[\u003c(])","patterns":[{"include":"#comments"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"}]},{"include":"#type_param"},{"name":"meta.parentheses.move","begin":"[(]","end":"[)]","patterns":[{"include":"#comments"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#types"},{"include":"#mut"}]},{"name":"storage.modifier","match":"\\b(acquires)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.fun.move"}}},"import":{"name":"meta.import.move","begin":"\\b(use)\\b","end":";","patterns":[{"include":"#comments"},{"include":"#address_literal"},{"include":"#as-import"},{"name":"entity.name.type.move","match":"\\b([A-Z]\\w*)\\b"},{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#as-import"},{"name":"entity.name.type.move","match":"\\b([A-Z]\\w*)\\b"}]},{"name":"meta.entity.name.type.module.move","match":"\\b(\\w+)\\b"}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"let":{"name":"keyword.control.move","match":"\\b(let)\\b"},"line-comments":{"name":"comment.line.double-slash.move","begin":"//","end":"$"},"literals":{"patterns":[{"name":"constant.numeric.hex.move","match":"0x[_a-fA-F0-9]+(?:[iu](?:8|16|32|64|size))?"},{"name":"constant.numeric.move","match":"(?\u003c!(?:\\w|(?:(?\u003c!\\.)\\.)))[0-9][_0-9]*(?:\\.(?!\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\-]?[_0-9]+)?(?:[u](?:8|64|128|))?"},{"match":"\\b(?:h)(\"[a-fA-F0-9]+\")","captures":{"1":{"name":"constant.character.move"}}},{"name":"meta.ascii_literal.move","match":"\\b(\"(.*)\")","captures":{"1":{"name":"string.quoted.double.raw.byte.move"}}},{"name":"meta.hex_literal.move","match":"x\"([A-F0-9a-f]+)\"","captures":{"1":{"name":"constant.numeric.hex.move"}}},{"name":"constant.language.boolean.move","match":"\\b(?:true|false)\\b"},{"include":"#address_literal"}]},"macros":{"name":"support.constant.macro.move","match":"#\\[(?:[\\w0-9=_\\(\\)\\s\"]+)\\]"},"module":{"name":"meta.module.move","begin":"\\b(module)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"begin":"(?\u003c=module)","end":"(?={)","patterns":[{"include":"#comments"},{"name":"constant.other.move","begin":"(?\u003c=module)","end":"(?=[(::){])"},{"name":"entity.name.type.move","begin":"(?\u003c=::)","end":"(?=[\\s{])"}]},{"name":"meta.module_scope.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#macros"},{"include":"#import"},{"include":"#friend"},{"include":"#const"},{"include":"#struct"},{"include":"#entry_fun"},{"include":"#native_fun"},{"include":"#public_fun"},{"include":"#fun"},{"include":"#spec"},{"include":"#block"}]}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"module_access":{"name":"meta.module_access.move","match":"\\b(\\w+)::(\\w+)\\b","captures":{"1":{"name":"meta.entity.name.type.accessed.module.move"},"2":{"name":"entity.name.function.call.move"}}},"move_copy":{"name":"variable.language.move","match":"\\b(move|copy)\\b"},"mut":{"name":"storage.modifier.mut.move","match":"(?\u003c=\u0026)(mut)\\b"},"native_fun":{"name":"meta.native_fun.move","begin":"\\b(native)\\b","end":"(?\u003c=[;}])","patterns":[{"include":"#comments"},{"name":"storage.modifier.public.move","match":"\\b(public)\\b"},{"name":"storage.modifier.entry.move","match":"\\b(entry)\\b"},{"include":"#fun_signature"}],"beginCaptures":{"1":{"name":"storage.modifier.native.move"}}},"phantom":{"name":"keyword.control.phantom.move","match":"\\b(phantom)\\b"},"primitives":{"name":"support.type.primitives.move","match":"\\b(u8|u64|u128|address|bool|signer)\\b"},"public_fun":{"name":"meta.public_fun.move","begin":"\\b(public)\\b","end":"(?\u003c=[;}])","patterns":[{"include":"#comments"},{"name":"storage.modifier.native.move","match":"\\b(native)\\b"},{"name":"storage.modifier.entry.move","match":"\\b(entry)\\b"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"name":"storage.modifier.public.script.move","match":"\\b(script|friend)\\b"}]},{"include":"#fun"}],"beginCaptures":{"1":{"name":"storage.modifier.public.move"}}},"resource_methods":{"name":"support.function.typed.move","match":"\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\b"},"script":{"name":"meta.script.move","begin":"\\b(script)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.script_scope.move","begin":"{","end":"}","patterns":[{"include":"#const"},{"include":"#comments"},{"include":"#import"},{"include":"#fun"}]}],"beginCaptures":{"1":{"name":"storage.modifier.script.move"}}},"self_access":{"name":"meta.self_access.move","match":"\\b(Self)::(\\w+)\\b","captures":{"1":{"name":"variable.language.self.move"},"2":{"name":"entity.name.function.call.move"}}},"spec":{"name":"meta.spec.move","begin":"\\b(spec)\\b","end":"(?\u003c=[;}])","patterns":[{"name":"storage.modifier.spec.target.move","match":"\\b(module|schema|struct|fun)"},{"name":"storage.modifier.spec.define.move","match":"\\b(define)"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"},{"begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#spec_block"},{"include":"#spec_types"},{"include":"#spec_define"},{"include":"#spec_keywords"},{"include":"#control"},{"include":"#fun_call"},{"include":"#literals"},{"include":"#types"},{"include":"#let"}]}],"beginCaptures":{"1":{"name":"storage.modifier.spec.move"}}},"spec_block":{"name":"meta.spec_block.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#spec_block"},{"include":"#spec_types"},{"include":"#fun_call"},{"include":"#literals"},{"include":"#control"},{"include":"#types"},{"include":"#let"}]},"spec_define":{"name":"meta.spec_define.move","begin":"\\b(define)\\b","end":"(?=[;{])","patterns":[{"include":"#comments"},{"include":"#spec_types"},{"include":"#types"},{"begin":"(?\u003c=define)","end":"(?=[(])","patterns":[{"include":"#comments"},{"name":"entity.name.function.move","match":"\\b(\\w+)\\b"}]}],"beginCaptures":{"1":{"name":"keyword.control.move.spec"}}},"spec_keywords":{"name":"keyword.control.move.spec","match":"\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\b"},"spec_types":{"name":"support.type.vector.move","match":"\\b(range|num|vector|bool|u8|u64|u128|address)\\b"},"struct":{"name":"meta.struct.move","begin":"\\b(struct)\\b","end":"(?\u003c=})","patterns":[{"include":"#comments"},{"name":"meta.struct_def.move","begin":"(?\u003c=struct)","end":"(?={)","patterns":[{"include":"#comments"},{"name":"keyword.control.ability.has.move","match":"\\b(has)\\b"},{"name":"entity.name.type.ability.move","match":"\\b(store|key|drop|copy)\\b"},{"name":"entity.name.type.move","match":"\\b(\\w+)\\b"},{"include":"#type_param"}]},{"name":"meta.struct_body.move","begin":"{","end":"}","patterns":[{"include":"#comments"},{"include":"#self_access"},{"include":"#module_access"},{"include":"#types"}]}],"beginCaptures":{"1":{"name":"storage.modifier.type.move"}}},"type_param":{"name":"meta.generic_param.move","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#phantom"},{"include":"#module_access"},{"name":"entity.name.type.kind.move","match":"\\b(store|drop|key|copy)\\b"}]},"types":{"name":"meta.types.move","patterns":[{"include":"#primitives"},{"include":"#vector"},{"name":"entity.name.type","match":"\\b([A-Z][A-Za-z_]+)\\b"},{"name":"constant.other.move","match":"\\b([A-Z_]+)\\b"}]},"vector":{"name":"meta.vector.move","begin":"\\b(vector)\u003c","end":"\u003e","patterns":[{"include":"#primitives"},{"include":"#vector"}],"beginCaptures":{"1":{"name":"support.type.vector.move"}}}}}
|
data/grammars/source.nix.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Nix","scopeName":"source.nix","patterns":[{"include":"#expression"}],"repository":{"attribute-bind":{"patterns":[{"include":"#attribute-name"},{"include":"#attribute-bind-from-equals"}]},"attribute-bind-from-equals":{"begin":"\\=","end":"\\;","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.bind.nix"}},"endCaptures":{"0":{"name":"punctuation.terminator.bind.nix"}}},"attribute-inherit":{"begin":"\\binherit\\b","end":"\\;","patterns":[{"begin":"\\(","end":"(?=\\;)","patterns":[{"begin":"\\)","end":"(?=\\;)","patterns":[{"include":"#bad-reserved"},{"include":"#attribute-name-single"},{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.section.function.arguments.nix"}}},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.function.arguments.nix"}}},{"begin":"(?=[a-zA-Z\\_])","end":"(?=\\;)","patterns":[{"include":"#bad-reserved"},{"include":"#attribute-name-single"},{"include":"#others"}]},{"include":"#others"}],"beginCaptures":{"0":{"name":"keyword.other.inherit.nix"}},"endCaptures":{"0":{"name":"punctuation.terminator.inherit.nix"}}},"attribute-name":{"patterns":[{"name":"entity.other.attribute-name.multipart.nix","match":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},{"match":"\\."},{"include":"#string-quoted"},{"include":"#interpolation"}]},"attribute-name-single":{"name":"entity.other.attribute-name.single.nix","match":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},"attrset-contents":{"patterns":[{"include":"#attribute-inherit"},{"include":"#bad-reserved"},{"include":"#attribute-bind"},{"include":"#others"}]},"attrset-definition":{"begin":"(?=\\{)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"#attrset-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.attrset.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.attrset.nix"}}},{"begin":"(?\u003c=\\})","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}]}]},"attrset-definition-brace-opened":{"patterns":[{"begin":"(?\u003c=\\})","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}]},{"begin":"(?=.?)","end":"\\}","patterns":[{"include":"#attrset-contents"}],"endCaptures":{"0":{"name":"punctuation.definition.attrset.nix"}}}]},"attrset-for-sure":{"patterns":[{"begin":"(?=\\brec\\b)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\brec\\b","end":"(?=\\{)","patterns":[{"include":"#others"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}},{"include":"#attrset-definition"},{"include":"#others"}]},{"begin":"(?=\\{\\s*(\\}|[^,?]*(=|;)))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attrset-definition"},{"include":"#others"}]}]},"attrset-or-function":{"begin":"\\{","end":"(?=([\\])};]|\\b(else|then)\\b))","patterns":[{"begin":"(?=(\\s*\\}|\\\"|\\binherit\\b|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])|\\$\\{[a-zA-z0-9\\_\\'\\-]+\\}(\\s*\\.|\\s*=[^=])))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attrset-definition-brace-opened"}]},{"begin":"(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition-brace-opened"}]},{"include":"#bad-reserved"},{"begin":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","end":"(?=([\\])};]|\\b(else|then)\\b))","patterns":[{"begin":"(?=\\.)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attrset-definition-brace-opened"}]},{"begin":"\\s*(\\,)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition-brace-opened"}],"beginCaptures":{"1":{"name":"keyword.operator.nix"}}},{"begin":"(?=\\=)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attribute-bind-from-equals"},{"include":"#attrset-definition-brace-opened"}]},{"begin":"(?=\\?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-parameter-default"},{"begin":"\\,","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition-brace-opened"}],"beginCaptures":{"0":{"name":"keyword.operator.nix"}}}]},{"include":"#others"}],"beginCaptures":{"0":{"name":"variable.parameter.function.maybe.nix"}}},{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.definition.attrset-or-function.nix"}}},"bad-reserved":{"name":"invalid.illegal.reserved.nix","match":"(?\u003c![\\w'-])(if|then|else|assert|with|let|in|rec|inherit)(?![\\w'-])"},"comment":{"patterns":[{"name":"comment.block.nix","begin":"/\\*([^*]|\\*[^\\/])*","end":"\\*\\/","patterns":[{"include":"#comment-remark"}]},{"name":"comment.line.number-sign.nix","begin":"\\#","end":"$","patterns":[{"include":"#comment-remark"}]}]},"comment-remark":{"match":"(TODO|FIXME|BUG|\\!\\!\\!):?","captures":{"1":{"name":"markup.bold.comment.nix"}}},"constants":{"patterns":[{"begin":"\\b(builtins|true|false|null)\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"constant.language.nix"}}},{"begin":"\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"support.function.nix"}}},{"begin":"\\b[0-9]+\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"constant.numeric.nix"}}}]},"expression":{"patterns":[{"include":"#parens-and-cont"},{"include":"#list-and-cont"},{"include":"#string"},{"include":"#interpolation"},{"include":"#with-assert"},{"include":"#function-for-sure"},{"include":"#attrset-for-sure"},{"include":"#attrset-or-function"},{"include":"#let"},{"include":"#if"},{"include":"#operator-unary"},{"include":"#constants"},{"include":"#bad-reserved"},{"include":"#parameter-name-and-cont"},{"include":"#others"}]},"expression-cont":{"begin":"(?=.?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#parens"},{"include":"#list"},{"include":"#string"},{"include":"#interpolation"},{"include":"#function-for-sure"},{"include":"#attrset-for-sure"},{"include":"#attrset-or-function"},{"name":"keyword.operator.nix","match":"(\\bor\\b|\\.|==|!=|!|\\\u003c\\=|\\\u003c|\\\u003e\\=|\\\u003e|\u0026\u0026|\\|\\||-\\\u003e|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)"},{"include":"#constants"},{"include":"#bad-reserved"},{"include":"#parameter-name"},{"include":"#others"}]},"function-body":{"begin":"(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}]},"function-body-from-colon":{"begin":"(\\:)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.function.nix"}}},"function-contents":{"patterns":[{"include":"#bad-reserved"},{"include":"#function-parameter"},{"include":"#others"}]},"function-definition":{"begin":"(?=.?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-body-from-colon"},{"begin":"(?=.?)","end":"(?=\\:)","patterns":[{"begin":"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)","end":"(?=\\:)","patterns":[{"begin":"\\@","end":"(?=\\:)","patterns":[{"include":"#function-header-until-colon-no-arg"},{"include":"#others"}]},{"include":"#others"}],"beginCaptures":{"0":{"name":"variable.parameter.function.4.nix"}}},{"begin":"(?=\\{)","end":"(?=\\:)","patterns":[{"include":"#function-header-until-colon-with-arg"}]}]},{"include":"#others"}]},"function-definition-brace-opened":{"begin":"(?=.?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-body-from-colon"},{"begin":"(?=.?)","end":"(?=\\:)","patterns":[{"include":"#function-header-close-brace-with-arg"},{"begin":"(?=.?)","end":"(?=\\})","patterns":[{"include":"#function-contents"}]}]},{"include":"#others"}]},"function-for-sure":{"patterns":[{"begin":"(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}\"'/=]*[,\\?]))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition"}]}]},"function-header-close-brace-no-arg":{"begin":"\\}","end":"(?=\\:)","patterns":[{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.definition.entity.function.nix"}}},"function-header-close-brace-with-arg":{"begin":"\\}","end":"(?=\\:)","patterns":[{"include":"#function-header-terminal-arg"},{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.definition.entity.function.nix"}}},"function-header-open-brace":{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#function-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.entity.function.2.nix"}}},"function-header-terminal-arg":{"begin":"(?=@)","end":"(?=\\:)","patterns":[{"begin":"\\@","end":"(?=\\:)","patterns":[{"name":"variable.parameter.function.3.nix","begin":"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)","end":"(?=\\:)"},{"include":"#others"}]},{"include":"#others"}]},"function-header-until-colon-no-arg":{"begin":"(?=\\{)","end":"(?=\\:)","patterns":[{"include":"#function-header-open-brace"},{"include":"#function-header-close-brace-no-arg"}]},"function-header-until-colon-with-arg":{"begin":"(?=\\{)","end":"(?=\\:)","patterns":[{"include":"#function-header-open-brace"},{"include":"#function-header-close-brace-with-arg"}]},"function-parameter":{"patterns":[{"name":"keyword.operator.nix","begin":"(\\.\\.\\.)","end":"(,|(?=\\}))","patterns":[{"include":"#others"}]},{"begin":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","end":"(,|(?=\\}))","patterns":[{"include":"#whitespace"},{"include":"#comment"},{"include":"#function-parameter-default"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"variable.parameter.function.1.nix"}},"endCaptures":{"0":{"name":"keyword.operator.nix"}}},{"include":"#others"}]},"function-parameter-default":{"begin":"\\?","end":"(?=[,}])","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.nix"}}},"if":{"begin":"(?=\\bif\\b)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\bif\\b","end":"\\bth(?=en\\b)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}},"endCaptures":{"0":{"name":"keyword.other.nix"}}},{"begin":"(?\u003c=th)en\\b","end":"\\bel(?=se\\b)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}},"endCaptures":{"0":{"name":"keyword.other.nix"}}},{"begin":"(?\u003c=el)se\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}},"endCaptures":{"0":{"name":"keyword.other.nix"}}}]},"illegal":{"name":"invalid.illegal","match":"."},"interpolation":{"name":"markup.italic","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nix"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.nix"}}},"let":{"begin":"(?=\\blet\\b)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\blet\\b","end":"(?=([\\])};,]|\\b(in|else|then)\\b))","patterns":[{"begin":"(?=\\{)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#attrset-contents"}]},{"begin":"(^|(?\u003c=\\}))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}]},{"include":"#others"}]},{"include":"#attrset-contents"},{"include":"#others"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}},{"begin":"\\bin\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}}]},"list":{"begin":"\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.list.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.list.nix"}}},"list-and-cont":{"begin":"(?=\\[)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#list"},{"include":"#expression-cont"}]},"operator-unary":{"name":"keyword.operator.unary.nix","match":"(!|-)"},"others":{"patterns":[{"include":"#whitespace"},{"include":"#comment"},{"include":"#illegal"}]},"parameter-name":{"match":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","captures":{"0":{"name":"variable.parameter.name.nix"}}},"parameter-name-and-cont":{"begin":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"variable.parameter.name.nix"}}},"parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.expression.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.expression.nix"}}},"parens-and-cont":{"begin":"(?=\\()","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#parens"},{"include":"#expression-cont"}]},"string":{"patterns":[{"begin":"(?=\\'\\')","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"name":"string.quoted.other.nix","begin":"\\'\\'","end":"\\'\\'(?!\\$|\\'|\\\\.)","patterns":[{"name":"constant.character.escape.nix","match":"\\'\\'(\\$|\\'|\\\\.)"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.other.start.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.string.other.end.nix"}}},{"include":"#expression-cont"}]},{"begin":"(?=\\\")","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#string-quoted"},{"include":"#expression-cont"}]},{"begin":"(~?[a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"string.unquoted.path.nix"}}},{"begin":"(\\\u003c[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\\u003e)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"string.unquoted.spath.nix"}}},{"begin":"([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\\u0026\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"string.unquoted.url.nix"}}}]},"string-quoted":{"name":"string.quoted.double.nix","begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.nix","match":"\\\\."},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.double.start.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.string.double.end.nix"}}},"whitespace":{"match":"\\s+"},"with-assert":{"begin":"(?\u003c![\\w'-])(with|assert)(?![\\w'-])","end":"\\;","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}}}}
|
1
|
+
{"name":"Nix","scopeName":"source.nix","patterns":[{"include":"#expression"}],"repository":{"attribute-bind":{"patterns":[{"include":"#attribute-name"},{"include":"#attribute-bind-from-equals"}]},"attribute-bind-from-equals":{"begin":"\\=","end":"\\;","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.bind.nix"}},"endCaptures":{"0":{"name":"punctuation.terminator.bind.nix"}}},"attribute-inherit":{"begin":"\\binherit\\b","end":"\\;","patterns":[{"begin":"\\(","end":"(?=\\;)","patterns":[{"begin":"\\)","end":"(?=\\;)","patterns":[{"include":"#bad-reserved"},{"include":"#attribute-name-single"},{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.section.function.arguments.nix"}}},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.function.arguments.nix"}}},{"begin":"(?=[a-zA-Z\\_])","end":"(?=\\;)","patterns":[{"include":"#bad-reserved"},{"include":"#attribute-name-single"},{"include":"#others"}]},{"include":"#others"}],"beginCaptures":{"0":{"name":"keyword.other.inherit.nix"}},"endCaptures":{"0":{"name":"punctuation.terminator.inherit.nix"}}},"attribute-name":{"patterns":[{"name":"entity.other.attribute-name.multipart.nix","match":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},{"match":"\\."},{"include":"#string-quoted"},{"include":"#interpolation"}]},"attribute-name-single":{"name":"entity.other.attribute-name.single.nix","match":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},"attrset-contents":{"patterns":[{"include":"#attribute-inherit"},{"include":"#bad-reserved"},{"include":"#attribute-bind"},{"include":"#others"}]},"attrset-definition":{"begin":"(?=\\{)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"#attrset-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.attrset.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.attrset.nix"}}},{"begin":"(?\u003c=\\})","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}]}]},"attrset-definition-brace-opened":{"patterns":[{"begin":"(?\u003c=\\})","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}]},{"begin":"(?=.?)","end":"\\}","patterns":[{"include":"#attrset-contents"}],"endCaptures":{"0":{"name":"punctuation.definition.attrset.nix"}}}]},"attrset-for-sure":{"patterns":[{"begin":"(?=\\brec\\b)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\brec\\b","end":"(?=\\{)","patterns":[{"include":"#others"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}},{"include":"#attrset-definition"},{"include":"#others"}]},{"begin":"(?=\\{\\s*(\\}|[^,?]*(=|;)))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attrset-definition"},{"include":"#others"}]}]},"attrset-or-function":{"begin":"\\{","end":"(?=([\\])};]|\\b(else|then)\\b))","patterns":[{"begin":"(?=(\\s*\\}|\\\"|\\binherit\\b|\\$\\{|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attrset-definition-brace-opened"}]},{"begin":"(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition-brace-opened"}]},{"include":"#bad-reserved"},{"begin":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","end":"(?=([\\])};]|\\b(else|then)\\b))","patterns":[{"begin":"(?=\\.)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attrset-definition-brace-opened"}]},{"begin":"\\s*(\\,)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition-brace-opened"}],"beginCaptures":{"1":{"name":"keyword.operator.nix"}}},{"begin":"(?=\\=)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#attribute-bind-from-equals"},{"include":"#attrset-definition-brace-opened"}]},{"begin":"(?=\\?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-parameter-default"},{"begin":"\\,","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition-brace-opened"}],"beginCaptures":{"0":{"name":"keyword.operator.nix"}}}]},{"include":"#others"}],"beginCaptures":{"0":{"name":"variable.parameter.function.maybe.nix"}}},{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.definition.attrset-or-function.nix"}}},"bad-reserved":{"name":"invalid.illegal.reserved.nix","match":"(?\u003c![\\w'-])(if|then|else|assert|with|let|in|rec|inherit)(?![\\w'-])"},"comment":{"patterns":[{"name":"comment.block.nix","begin":"/\\*([^*]|\\*[^\\/])*","end":"\\*\\/","patterns":[{"include":"#comment-remark"}]},{"name":"comment.line.number-sign.nix","begin":"\\#","end":"$","patterns":[{"include":"#comment-remark"}]}]},"comment-remark":{"match":"(TODO|FIXME|BUG|\\!\\!\\!):?","captures":{"1":{"name":"markup.bold.comment.nix"}}},"constants":{"patterns":[{"begin":"\\b(builtins|true|false|null)\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"constant.language.nix"}}},{"begin":"\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"support.function.nix"}}},{"begin":"\\b[0-9]+\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"constant.numeric.nix"}}}]},"expression":{"patterns":[{"include":"#parens-and-cont"},{"include":"#list-and-cont"},{"include":"#string"},{"include":"#interpolation"},{"include":"#with-assert"},{"include":"#function-for-sure"},{"include":"#attrset-for-sure"},{"include":"#attrset-or-function"},{"include":"#let"},{"include":"#if"},{"include":"#operator-unary"},{"include":"#constants"},{"include":"#bad-reserved"},{"include":"#parameter-name-and-cont"},{"include":"#others"}]},"expression-cont":{"begin":"(?=.?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#parens"},{"include":"#list"},{"include":"#string"},{"include":"#interpolation"},{"include":"#function-for-sure"},{"include":"#attrset-for-sure"},{"include":"#attrset-or-function"},{"name":"keyword.operator.nix","match":"(\\bor\\b|\\.|==|!=|!|\\\u003c\\=|\\\u003c|\\\u003e\\=|\\\u003e|\u0026\u0026|\\|\\||-\\\u003e|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)"},{"include":"#constants"},{"include":"#bad-reserved"},{"include":"#parameter-name"},{"include":"#others"}]},"function-body":{"begin":"(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}]},"function-body-from-colon":{"begin":"(\\:)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.function.nix"}}},"function-contents":{"patterns":[{"include":"#bad-reserved"},{"include":"#function-parameter"},{"include":"#others"}]},"function-definition":{"begin":"(?=.?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-body-from-colon"},{"begin":"(?=.?)","end":"(?=\\:)","patterns":[{"begin":"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)","end":"(?=\\:)","patterns":[{"begin":"\\@","end":"(?=\\:)","patterns":[{"include":"#function-header-until-colon-no-arg"},{"include":"#others"}]},{"include":"#others"}],"beginCaptures":{"0":{"name":"variable.parameter.function.4.nix"}}},{"begin":"(?=\\{)","end":"(?=\\:)","patterns":[{"include":"#function-header-until-colon-with-arg"}]}]},{"include":"#others"}]},"function-definition-brace-opened":{"begin":"(?=.?)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-body-from-colon"},{"begin":"(?=.?)","end":"(?=\\:)","patterns":[{"include":"#function-header-close-brace-with-arg"},{"begin":"(?=.?)","end":"(?=\\})","patterns":[{"include":"#function-contents"}]}]},{"include":"#others"}]},"function-for-sure":{"patterns":[{"begin":"(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}\"'/=]*[,\\?]))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#function-definition"}]}]},"function-header-close-brace-no-arg":{"begin":"\\}","end":"(?=\\:)","patterns":[{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.definition.entity.function.nix"}}},"function-header-close-brace-with-arg":{"begin":"\\}","end":"(?=\\:)","patterns":[{"include":"#function-header-terminal-arg"},{"include":"#others"}],"beginCaptures":{"0":{"name":"punctuation.definition.entity.function.nix"}}},"function-header-open-brace":{"begin":"\\{","end":"(?=\\})","patterns":[{"include":"#function-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.entity.function.2.nix"}}},"function-header-terminal-arg":{"begin":"(?=@)","end":"(?=\\:)","patterns":[{"begin":"\\@","end":"(?=\\:)","patterns":[{"name":"variable.parameter.function.3.nix","begin":"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)","end":"(?=\\:)"},{"include":"#others"}]},{"include":"#others"}]},"function-header-until-colon-no-arg":{"begin":"(?=\\{)","end":"(?=\\:)","patterns":[{"include":"#function-header-open-brace"},{"include":"#function-header-close-brace-no-arg"}]},"function-header-until-colon-with-arg":{"begin":"(?=\\{)","end":"(?=\\:)","patterns":[{"include":"#function-header-open-brace"},{"include":"#function-header-close-brace-with-arg"}]},"function-parameter":{"patterns":[{"name":"keyword.operator.nix","begin":"(\\.\\.\\.)","end":"(,|(?=\\}))","patterns":[{"include":"#others"}]},{"begin":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","end":"(,|(?=\\}))","patterns":[{"include":"#whitespace"},{"include":"#comment"},{"include":"#function-parameter-default"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"variable.parameter.function.1.nix"}},"endCaptures":{"0":{"name":"keyword.operator.nix"}}},{"include":"#others"}]},"function-parameter-default":{"begin":"\\?","end":"(?=[,}])","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.nix"}}},"if":{"begin":"(?=\\bif\\b)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\bif\\b","end":"\\bth(?=en\\b)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}},"endCaptures":{"0":{"name":"keyword.other.nix"}}},{"begin":"(?\u003c=th)en\\b","end":"\\bel(?=se\\b)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}},"endCaptures":{"0":{"name":"keyword.other.nix"}}},{"begin":"(?\u003c=el)se\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}},"endCaptures":{"0":{"name":"keyword.other.nix"}}}]},"illegal":{"name":"invalid.illegal","match":"."},"interpolation":{"name":"meta.embedded","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.nix"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.nix"}}},"let":{"begin":"(?=\\blet\\b)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\blet\\b","end":"(?=([\\])};,]|\\b(in|else|then)\\b))","patterns":[{"begin":"(?=\\{)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#attrset-contents"}]},{"begin":"(^|(?\u003c=\\}))","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}]},{"include":"#others"}]},{"include":"#attrset-contents"},{"include":"#others"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}},{"begin":"\\bin\\b","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}}]},"list":{"begin":"\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.list.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.list.nix"}}},"list-and-cont":{"begin":"(?=\\[)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#list"},{"include":"#expression-cont"}]},"operator-unary":{"name":"keyword.operator.unary.nix","match":"(!|-)"},"others":{"patterns":[{"include":"#whitespace"},{"include":"#comment"},{"include":"#illegal"}]},"parameter-name":{"match":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","captures":{"0":{"name":"variable.parameter.name.nix"}}},"parameter-name-and-cont":{"begin":"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"variable.parameter.name.nix"}}},"parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.expression.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.expression.nix"}}},"parens-and-cont":{"begin":"(?=\\()","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#parens"},{"include":"#expression-cont"}]},"string":{"patterns":[{"begin":"(?=\\'\\')","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"name":"string.quoted.other.nix","begin":"\\'\\'","end":"\\'\\'(?!\\$|\\'|\\\\.)","patterns":[{"name":"constant.character.escape.nix","match":"\\'\\'(\\$|\\'|\\\\.)"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.other.start.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.string.other.end.nix"}}},{"include":"#expression-cont"}]},{"begin":"(?=\\\")","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#string-quoted"},{"include":"#expression-cont"}]},{"begin":"(~?[a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"string.unquoted.path.nix"}}},{"begin":"(\\\u003c[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\\u003e)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"string.unquoted.spath.nix"}}},{"begin":"([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\\u0026\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)","end":"(?=([\\])};,]|\\b(else|then)\\b))","patterns":[{"include":"#expression-cont"}],"beginCaptures":{"0":{"name":"string.unquoted.url.nix"}}}]},"string-quoted":{"name":"string.quoted.double.nix","begin":"\\\"","end":"\\\"","patterns":[{"name":"constant.character.escape.nix","match":"\\\\."},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.double.start.nix"}},"endCaptures":{"0":{"name":"punctuation.definition.string.double.end.nix"}}},"whitespace":{"match":"\\s+"},"with-assert":{"begin":"(?\u003c![\\w'-])(with|assert)(?![\\w'-])","end":"\\;","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.other.nix"}}}}}
|
data/grammars/source.pic.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Pic","scopeName":"source.pic","patterns":[{"include":"#binary"},{"include":"#tags"},{"include":"#embedded-roff"},{"include":"#embedded-latex"},{"include":"#main"}],"repository":{"attributes":{"patterns":[{"name":"entity.other.attribute-name.same-as.pikchr.pic","match":"\\bsame\\s+as\\b"},{"name":"entity.other.attribute-name.$1.pic","match":"(?x)\\b (chop|cw|dashed|diameter|diam|dotted|down|height|ht|invisible |invis|left|radius|rad|right|same|up|width|wid)\\b"},{"name":"entity.other.attribute-name.$1.pic","begin":"\\b(colou?r(?:ed)?|outlined?|shaded|fill)\\b[ \\t]*(?=\\w)","end":"(?=\\S)|(?\u003c=\\S)","patterns":[{"name":"constant.numeric.hexadecimal.hex.pikchr.pic","match":"\\G0[Xx][0-9A-Fa-f]{6}"},{"name":"support.constant.no-colour.pikchr.pic","match":"(?i)\\G(None|Off)\\b"},{"name":"support.constant.colour.pikchr.pic","match":"(?xi)\\G (AliceBlue|AntiqueWhite|Aquamarine|Aqua|Azure|Beige|Bisque|Black|BlanchedAlmond|BlueViolet|Blue|Brown|BurlyWood|CadetBlue |Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGreen|DarkGr[ae]y |DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y |DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro |GhostWhite|Goldenrod|Gold|Gr[ae]y|GreenYellow|Green|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|LavenderBlush|Lavender |LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon |LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|LimeGreen|Lime|Linen|Magenta|Maroon|MediumAquamarine |MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed |MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|OliveDrab|Olive|OrangeRed|Orange|Orchid |PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple |Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|Seashell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow |SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|WhiteSmoke|White|YellowGreen|Yellow)\\b"}],"applyEndPatternLast":true},{"name":"entity.other.attribute-name.$1.pikchr.pic","match":"\\b(aligned|big|bold|fit|italic|small|(?:thickness|color|fill)(?!\\s*(?:[-:+/*%=!\u003c\u003e]?=|\u003c|\u003e))|thick|thin)\\b"},{"name":"entity.other.attribute-name.$1.dpic.pic","match":"\\b(scaled)\\b"}]},"backref":{"patterns":[{"name":"variable.language.backreference.pic","match":"\\b(last|(?:\\d*1[1-3]th|\\d*0th|(?:(?!11st)\\d)*1st|\\d*2nd|(?:(?!13rd)\\d*)3rd|\\d*[4-9]th)(?:[ \\t]+last)?)\\b"},{"name":"meta.backreference.computed.pic","match":"((')([^']*)('))(th)","captures":{"1":{"name":"string.quoted.single.pic"},"2":{"name":"punctuation.definition.string.begin.pic"},"3":{"name":"meta.expression.pic","patterns":[{"include":"#main"}]},"4":{"name":"punctuation.definition.string.end.pic"},"5":{"name":"constant.language.ordinal-suffix.pic"}}},{"name":"variable.language.backreference.pikchr.pic","match":"\\b(first|previous)\\b"}]},"binary":{"name":"raw.binary.data","begin":"^(?=.*(?![\\x02-\\x07\\f\\x7F])[\\x00-\\x06\\x{FFFD}])","end":"(?=A)B"},"boolean":{"name":"constant.boolean.$1.dformat.pic","match":"\\b(true|false|on|off)\\b"},"brackets":{"patterns":[{"begin":"\\(","end":"(?=\\))|^(?=\\.P[EF]\\b)","patterns":[{"name":"variable.language.global.pikchr.pic","match":"\\b(?:color|fill|thickness)\\b"},{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.pic"}}},{"begin":"\\[","end":"(?=\\])|^(?=\\.P[EF]\\b)","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.pic"}}},{"begin":"\\{","end":"(?=\\})|^(?=\\.P[EF]\\b)","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.pic"}}}]},"chem":{"patterns":[{"include":"#label"},{"match":"\\b(?:(?:(double|triple|front|back)[ \\t]+)?\\b(bond))\\b","captures":{"1":{"name":"storage.modifier.$1.pic.chem"},"2":{"name":"storage.type.bond.pic.chem"}}},{"match":"(?:\\b(aromatic)[ \\t]+)?\\b(benzene|(?:flat)?ring\\d*)","captures":{"1":{"name":"storage.modifier.aromatic.pic.chem"},"2":{"name":"storage.type.ring.pic.chem"}}},{"name":"storage.modifier.direction.pic.chem","match":"\\b(pointing)\\b"},{"name":"meta.set-size.pic.chem","match":"\\b(size)\\b[ \\t]*(\\d+)","captures":{"1":{"name":"entity.other.attribute-name.size.pic.chem"},"2":{"name":"constant.numeric.parameter.pic.chem"}}},{"name":"keyword.control.branch-point.pic.chem","match":"\\bBP\\b"},{"name":"string.unquoted.group-name.pic.chem","match":"(?=[A-Z])(?!BP)([\\w\\(\\).]+)","captures":{"1":{"patterns":[{"include":"#punctuation"},{"name":"punctuation.delimiter.period.full-stop.chem.pic","match":"\\."}]}}},{"begin":"\\(","end":"(?=\\))|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.chem.pic"}}},{"begin":"\\[","end":"(?=\\])|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.chem.pic"}}},{"begin":"\\{","end":"(?=\\})|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.chem.pic"}}},{"include":"$self"}]},"comment":{"patterns":[{"name":"comment.line.number-sign.pic","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.pic"}}},{"name":"comment.line.double-slash.non-standard.pikchr.pic","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.pic"}}},{"name":"comment.block.non-standard.pikchr.pic","begin":"/\\*","end":"\\*/|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.pic"}}}]},"dformat":{"patterns":[{"include":"#pic-line"},{"name":"meta.format.dformat.pic","begin":"^style\\b","end":"$","patterns":[{"include":"#boolean"},{"name":"constant.language.dformat.pic","match":"(?x)\\b\n(addr|addrdelta|addrht|bitwid|charwid|fill|linedisp\n|linethrutext|recht|recspread|reset|textht)\\b"},{"include":"#number"}],"beginCaptures":{"0":{"name":"entity.other.attribute-name.style.dformat.pic"}}},{"name":"meta.record.dformat.pic","begin":"^\\S.*$\\R?","end":"^(?=\\S)","patterns":[{"match":"^([ \\t]+[^:\\s]+:)?(?:(?\u003c=:)|[ \\t]+)(\\S+)\\s+(.*)$","captures":{"0":{"name":"markup.list.unnumbered.dformat.pic"},"1":{"patterns":[{"include":"#main"}]},"2":{"patterns":[{"name":"punctuation.separator.dash.dformat.pic","match":"-"},{"include":"#number"}]},"3":{"patterns":[{"contentName":"source.embedded.eqn.roff","begin":"@","end":"@","patterns":[{"include":"text.roff#eqn"}],"beginCaptures":{"0":{"name":"punctuation.definition.section.begin.eqn"}},"endCaptures":{"0":{"name":"punctuation.definition.section.end.eqn"}}}]}}}],"beginCaptures":{"0":{"name":"markup.bold.heading.dformat.pic"}}}]},"embedded-latex":{"name":"source.embedded.tex.pic","match":"^(?:\\\\\\w|%).*$","captures":{"0":{"patterns":[{"include":"text.tex"}]}}},"embedded-roff":{"begin":"^(?=[.'][ \\t]*(?:\\w|\\\\))","end":"(?\u003c!\\\\)$|(\\\\\".*)$","patterns":[{"include":"text.roff"}],"endCaptures":{"1":{"patterns":[{"include":"text.roff"}]}}},"escaped-newline":{"name":"constant.character.escape.newline.pic","begin":"\\\\$\\R?","end":"^(?:[.'])?","beginCaptures":{"0":{"name":"punctuation.definition.escape.pic"}}},"function-call":{"contentName":"meta.function-call.pic","begin":"\\b(?!\\d)(\\w+)(?=\\()","end":"(?!\\G)","patterns":[{"name":"meta.arguments.pic","begin":"\\G\\(","end":"\\)","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.pic"}}}],"beginCaptures":{"1":{"patterns":[{"include":"#function-name"}]}}},"function-name":{"patterns":[{"name":"support.function.$1.pic","match":"(?:\\G|^)(atan2|cos|exp|int|log|max|min|s?rand|sin|sqrt|sprintf)$"},{"name":"entity.name.function.user-defined.pic","match":"(?:\\G|^)\\S+"}]},"globals":{"patterns":[{"name":"variable.language.global.pic","match":"(?x)\\b\n(arcrad|arrowhead|arrowht|arrowwid|boxht|boxwid|circlerad|dashwid\n|ellipseht|ellipsewid|fillval|lineht|linewid|maxpsht|maxpswid\n|moveht|movewid|scale|textht|textwid)\\b"},{"name":"variable.language.global.pikchr.pic","match":"\\b((?:left|right|top|bottom)?margin|charht|charwid|color|fill|fontscale|thickness)\\b"}]},"grap":{"patterns":[{"name":"variable.language.process-id.pic.grap","match":"\\bpid\\b"},{"name":"keyword.control.then.pic.grap","match":"\\bthen\\b"},{"name":"keyword.operator.pic.grap","match":"\\b(in|out|through)\\b"},{"include":"#comment"},{"include":"#string"},{"include":"#number"},{"include":"#boolean"},{"include":"#punctuation"},{"include":"#operators"},{"include":"#function-call"},{"include":"#macros"},{"include":"#pic-line"},{"name":"keyword.function.pic.grap","match":"(?x)\\b\n(assignment|circle|coord|copy|draw|for|frame|graph|grid|if|label\n|line|new|next|numberlist|pic|plot|print|sh|ticks?)\\b","captures":{"0":{"name":"entity.function.name.pic.grap"}}},{"name":"variable.other.property.$1.pic.grap","match":"(?x)\\b\n(above|arrow|below|bot|bottom|dashed|dotted|down|ht|invis\n|left|log|radius|right|[lr]just|size|solid|top|up|wid|x|y)\\b"},{"name":"support.function.grap.pic","match":"(?x)\\b\n(atan2|cos|exp|int|log|max|min|rand|sin|sqrt|bullet\n|plus|box|star|dot|times|htick|vtick|square|delta)\\b"},{"begin":"\\(","end":"(?=\\))|^(?=\\.P[EF]\\b|^[.']\\s*G2\\b)","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.chem.pic"}}},{"begin":"\\[","end":"(?=\\])|^(?=\\.P[EF]\\b|^[.']\\s*G2\\b)","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.chem.pic"}}},{"begin":"\\{","end":"(?=\\})|^(?=\\.P[EF]\\b|^[.']\\s*G2\\b)","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.chem.pic"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"keyword.control.$1.pic","match":"\\b(for|do|if|then(?=\\s*\\{)|else)\\b"},{"name":"keyword.operator.$1.pic","match":"\\b(and|at|by|copy|from|reset|sh|then|thru|to|with|of(?:\\s+the\\s+way\\s+between)?)\\b"},{"name":"keyword.operator.$1.dpic.pic","match":"\\b(continue|exec)\\b"},{"name":"keyword.operator.$1.pikchr.pic","match":"\\b(above|below|close|go|heading|until\\s+even\\s+with|vertex\\s+of)\\b"}]},"label":{"match":"([A-Z][^#(\"\\s:]*)(:)","captures":{"1":{"name":"storage.type.label.pic"},"2":{"name":"punctuation.separator.key-value.pic"}}},"macros":{"patterns":[{"name":"meta.function.$1.pic","match":"(define|undef)\\b\\s*(\\w*)","captures":{"1":{"name":"storage.type.function.pic"},"2":{"name":"entity.name.function.pic"}}},{"name":"variable.other.positional.pic","match":"(\\$)\\d+","captures":{"1":{"name":"punctuation.definition.variable"}}},{"begin":"(until)[ \\t]+((\")([^\"]+)(\"))\\s*$\\R?","end":"^[ ]*(\\4)\\b","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.until.pic"},"2":{"name":"string.quoted.double.pic"},"3":{"name":"punctuation.definition.string.begin.pic"},"5":{"name":"punctuation.definition.string.end.pic"}},"endCaptures":{"1":{"name":"keyword.control.terminator.pic"}}}]},"main":{"patterns":[{"include":"#comment"},{"include":"#shell-command"},{"include":"#keywords"},{"include":"#positions"},{"include":"#backref"},{"include":"#macros"},{"include":"#string"},{"include":"#number"},{"include":"#escaped-newline"},{"include":"#operators"},{"include":"#brackets"},{"include":"#punctuation"},{"include":"#primitives"},{"include":"#attributes"},{"include":"#globals"},{"include":"#function-call"},{"include":"#label"},{"include":"#name"}]},"name":{"patterns":[{"name":"variable.positional.other.pic","match":"(\\$)(?!0)\\d+\\b","captures":{"1":{"name":"punctuation.definition.variable.pic"}}},{"name":"variable.other.user-defined.non-standard.pikchr.pic","match":"([$@])\\w+","captures":{"1":{"name":"punctuation.definition.variable.pikchr.pic"}}},{"name":"variable.other.user-defined.pic","match":"(?!\\d)\\w+\\b"}]},"number":{"name":"constant.numeric.pic","match":"(?:(?\u003c!\\d)-)?(?:\\d+(?:\\.(?:\\d+|(?=[Ee][-+]?\\d)))?)(?:[Ee][-+]?\\d+)?(?:(%)|(cm|in|mm|pc|pt|px)\\b)?","captures":{"1":{"name":"constant.other.unit.percentage.pikchr.pic"},"2":{"name":"constant.other.unit.$2.pikchr.pic"}}},"operators":{"patterns":[{"name":"keyword.operator.arrow.pic","match":"\u003c-\u003e|\u003c-|-\u003e"},{"name":"keyword.operator.arrow.unicode.pikchr.pic","match":"←|→|↔"},{"name":"keyword.operator.logical.boolean.pic","match":"\u0026\u0026|\\|{2}"},{"name":"keyword.operator.comparison.relational.numeric.pic","match":"[\u003c\u003e]=?"},{"name":"keyword.operator.comparison.relational.boolean.pic","match":"[!=]="},{"name":"keyword.operator.assignment.compound.pic","match":"[-+*/]="},{"name":"keyword.operator.assignment.pic","match":":?="},{"name":"keyword.operator.arithmetic.pic","match":"[-/+*%^]"},{"name":"keyword.operator.logical.not.negation.pic","match":"!"},{"name":"keyword.operator.arrow.html-entity.pikchr.pic","match":"\u0026(?:(?:left|right|leftright)arrow|[lr]arr);","captures":{"0":{"patterns":[{"include":"text.html.basic#character-reference"}]}}}]},"pic-line":{"begin":"^(pic)\\b","end":"$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"keyword.control.dformat.pic"}}},"positions":{"patterns":[{"name":"entity.other.attribute-name.corner.pic","match":"(?\u003c=\\.)(?:bottom|bot|center|end|left|right|start|top|[ns][ew]|[bcelnrstw])\\b"},{"name":"variable.language.placement.pic","match":"(?x) \\b\n( (?:bottom|center|east|end|north|south|start|top|west|Here)\n| (?:lower|upper) \\s+ (?:left|right)\n| (?:left|right) (?=\\s+ of \\b)\n) \\b"},{"name":"meta.position.pic","match":"(?\u003cbalance\u003e\u003c([^\u003c\u003e]++|\\g\u003cbalance\u003e)*+\u003e){0}\\g\u003cbalance\u003e","captures":{"0":{"patterns":[{"name":"punctuation.definition.position.bracket.angle.begin.pic","match":"\u003c"},{"name":"punctuation.definition.position.bracket.angle.end.pic","match":"\u003e"},{"name":"punctuation.separator.coordinates.comma.pic","match":","},{"include":"#main"}]}}}]},"primitives":{"patterns":[{"name":"storage.type.primitive.$1.pic","match":"\\b(box|line|arrow|circle|ellipse|arc|move|spline|print|command|plot)\\b"},{"name":"storage.type.primitive.$1.pikchr.pic","match":"\\b(oval|cylinder|file|dot|text)\\b"}]},"punctuation":{"patterns":[{"name":"punctuation.definition.bracket.curly.pic","match":"\\}"},{"name":"punctuation.definition.bracket.round.pic","match":"\\)"},{"name":"punctuation.definition.bracket.square.pic","match":"\\]"},{"name":"punctuation.terminator.statement.pic","match":";"},{"name":"punctuation.separator.comma.pic","match":","},{"name":"punctuation.definition.bracket.angle.pic","match":"\u003c|\u003e"},{"name":"punctuation.delimiter.period.full-stop.pic","match":"\\.(?!\\d)"}]},"shell-braces":{"name":"meta.scope.group.shell","begin":"{","end":"}","patterns":[{"include":"#shell-braces"},{"include":"source.shell"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.shell.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.group.shell.end.shell"}}},"shell-command":{"name":"meta.shell-command.pic","begin":"\\b(sh)\\b[ \\t]*","end":"(?!\\G)","patterns":[{"contentName":"source.embedded.shell","begin":"\\G{","end":"}","patterns":[{"include":"#shell-braces"},{"include":"source.shell"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.brace.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.brace.end.pic"}},"applyEndPatternLast":true},{"contentName":"source.embedded.shell","begin":"\\G(.)","end":"\\1","patterns":[{"include":"source.shell"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.arbitrary-delimiter.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.arbitrary-delimiter.end.pic"}}}],"beginCaptures":{"1":{"name":"keyword.operator.$1.pic"}}},"string":{"name":"string.quoted.double.pic","begin":"\"","end":"\"","patterns":[{"include":"#string-escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pic"}}},"string-escapes":{"patterns":[{"name":"constant.character.escape.pic","match":"(\\\\)[\\\\\"]","captures":{"1":{"name":"punctuation.definition.escape.pic"}}},{"match":"(?:[^\"\\\\]|\\\\[^\"])+","captures":{"0":{"patterns":[{"include":"text.roff#escapes"}]}}}]},"tags":{"patterns":[{"name":"invalid.deprecated.function.picture.macro.roff","match":"^([.'])[ \\t]*(PS)[ \\t]*(\u003c)(.*)(?=$|\\\\\")","captures":{"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"},"3":{"name":"punctuation.definition.filename.roff"},"4":{"patterns":[{"include":"text.roff#params"}]}}},{"contentName":"source.embedded.pic","begin":"^([.'])[ \\t]*(PS)\\b([\\d \\t]*(?:#.*)?)?(\\\\[#\"].*)?$","end":"^([.'])[ \\t]*(P[EF])\\b","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"meta.function.begin.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"},"3":{"patterns":[{"include":"source.pic"}]},"4":{"patterns":[{"include":"text.roff#escapes"}]}},"endCaptures":{"0":{"name":"meta.function.end.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.name.function.roff"}}},{"contentName":"source.embedded.chem.pic","begin":"^([.'])[ \\t]*(cstart)\\b\\s*(\\S.*)?","end":"^([.'])[ \\t]*(cend)\\b","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"meta.function.begin.chemical.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.chem"},"2":{"name":"entity.function.name.roff"},"3":{"name":"invalid.illegal.unexpected-characters.pic.chem"}},"endCaptures":{"0":{"name":"meta.function.end.chemical.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"}}},{"contentName":"source.embedded.dformat.pic","begin":"^([.'])[ \\t]*(begin[ \\t]+dformat)\\b","end":"^([.'])[ \\t]*(end)\\b","patterns":[{"include":"#dformat"}],"beginCaptures":{"0":{"name":"meta.function.begin.dformat.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.dformat"},"2":{"name":"entity.function.name.roff"}},"endCaptures":{"0":{"name":"meta.function.end.dformat.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"}}},{"contentName":"source.embedded.grap.pic","begin":"^([.'])[ \\t]*(G1)\\b(\\s*\\d+)?(\\s*\\\\\".*$)?","end":"^([.'])[ \\t]*(G2)\\b","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"meta.function.begin.graph.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.grap"},"2":{"name":"entity.function.name.roff"},"3":{"name":"constant.numeric.parameter.pic.grap"},"4":{"patterns":[{"include":"text.roff#escapes"}]}},"endCaptures":{"0":{"name":"meta.function.end.graph.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.grap"},"2":{"name":"entity.function.name.roff"}}}]}}}
|
1
|
+
{"name":"Pic","scopeName":"source.pic","patterns":[{"include":"#binary"},{"include":"#tags"},{"include":"#embedded-roff"},{"include":"#embedded-latex"},{"include":"#main"}],"repository":{"attributes":{"patterns":[{"name":"entity.other.attribute-name.same-as.pikchr.pic","match":"\\bsame\\s+as\\b"},{"name":"entity.other.attribute-name.$1.pic","match":"(?x)\\b (chop|cw|dashed|diameter|diam|dotted|down|height|ht|invisible |invis|left|radius|rad|right|same|up|width|wid)\\b"},{"name":"entity.other.attribute-name.$1.pic","begin":"\\b(colou?r(?:ed)?|outlined?|shaded|fill)\\b[ \\t]*(?=\\w)","end":"(?=\\S)|(?\u003c=\\S)","patterns":[{"name":"constant.numeric.hexadecimal.hex.pikchr.pic","match":"\\G0[Xx][0-9A-Fa-f]{6}"},{"name":"support.constant.no-colour.pikchr.pic","match":"(?i)\\G(None|Off)\\b"},{"name":"support.constant.colour.pikchr.pic","match":"(?xi)\\G (AliceBlue|AntiqueWhite|Aquamarine|Aqua|Azure|Beige|Bisque|Black|BlanchedAlmond|BlueViolet|Blue|Brown|BurlyWood|CadetBlue |Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGreen|DarkGr[ae]y |DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y |DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro |GhostWhite|Goldenrod|Gold|Gr[ae]y|GreenYellow|Green|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|LavenderBlush|Lavender |LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon |LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|LimeGreen|Lime|Linen|Magenta|Maroon|MediumAquamarine |MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed |MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|OliveDrab|Olive|OrangeRed|Orange|Orchid |PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple |Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|Seashell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow |SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|WhiteSmoke|White|YellowGreen|Yellow)\\b"}],"applyEndPatternLast":true},{"name":"entity.other.attribute-name.$1.pikchr.pic","match":"\\b(aligned|big|bold|fit|italic|small|(?:thickness|color|fill)(?!\\s*(?:[-:+/*%=!\u003c\u003e]?=|\u003c|\u003e))|thick|thin)\\b"},{"name":"entity.other.attribute-name.$1.dpic.pic","match":"\\b(scaled)\\b"}]},"backref":{"patterns":[{"name":"variable.language.backreference.pic","match":"\\b(last|(?:\\d*1[1-3]th|\\d*0th|(?:(?!11st)\\d)*1st|\\d*2nd|(?:(?!13rd)\\d*)3rd|\\d*[4-9]th)(?:[ \\t]+last)?)\\b"},{"name":"meta.backreference.computed.pic","match":"((')([^']*)('))(th)","captures":{"1":{"name":"string.quoted.single.pic"},"2":{"name":"punctuation.definition.string.begin.pic"},"3":{"name":"meta.expression.pic","patterns":[{"include":"#main"}]},"4":{"name":"punctuation.definition.string.end.pic"},"5":{"name":"constant.language.ordinal-suffix.pic"}}},{"name":"variable.language.backreference.pikchr.pic","match":"\\b(first|previous)\\b"}]},"binary":{"name":"raw.binary.data","begin":"^(?=.*(?![\\x02-\\x07\\f\\x7F])[\\x00-\\x06\\x{FFFD}])","end":"(?=A)B"},"boolean":{"name":"constant.boolean.$1.dformat.pic","match":"\\b(true|false|on|off)\\b"},"brackets":{"patterns":[{"begin":"\\(","end":"(?=\\))|^(?=\\.P[EF]\\b)","patterns":[{"name":"variable.language.global.pikchr.pic","match":"\\b(?:color|fill|thickness)\\b"},{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.pic"}}},{"begin":"\\[","end":"(?=\\])|^(?=\\.P[EF]\\b)","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.pic"}}},{"begin":"\\{","end":"(?=\\})|^(?=\\.P[EF]\\b)","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.pic"}}}]},"chem":{"patterns":[{"include":"#label"},{"match":"\\b(?:(?:(double|triple|front|back)[ \\t]+)?\\b(bond))\\b","captures":{"1":{"name":"storage.modifier.$1.pic.chem"},"2":{"name":"storage.type.bond.pic.chem"}}},{"match":"(?:\\b(aromatic)[ \\t]+)?\\b(benzene|(?:flat)?ring\\d*)","captures":{"1":{"name":"storage.modifier.aromatic.pic.chem"},"2":{"name":"storage.type.ring.pic.chem"}}},{"name":"storage.modifier.direction.pic.chem","match":"\\b(pointing)\\b"},{"name":"meta.set-size.pic.chem","match":"\\b(size)\\b[ \\t]*(\\d+)","captures":{"1":{"name":"entity.other.attribute-name.size.pic.chem"},"2":{"name":"constant.numeric.parameter.pic.chem"}}},{"name":"keyword.control.branch-point.pic.chem","match":"\\bBP\\b"},{"name":"string.unquoted.group-name.pic.chem","match":"(?=[A-Z])(?!BP)([\\w\\(\\).]+)","captures":{"1":{"patterns":[{"include":"#punctuation"},{"name":"punctuation.delimiter.period.full-stop.chem.pic","match":"\\."}]}}},{"begin":"\\(","end":"(?=\\))|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.chem.pic"}}},{"begin":"\\[","end":"(?=\\])|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.chem.pic"}}},{"begin":"\\{","end":"(?=\\})|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.chem.pic"}}},{"include":"$self"}]},"comment":{"patterns":[{"name":"comment.line.number-sign.pic","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.pic"}}},{"name":"comment.line.double-slash.non-standard.pikchr.pic","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.pic"}}},{"name":"comment.block.non-standard.pikchr.pic","begin":"/\\*","end":"\\*/|^(?=\\.P[EF]\\b|^[.']\\s*cend\\b)","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.pic"}}}]},"dformat":{"patterns":[{"include":"#pic-line"},{"name":"meta.format.dformat.pic","begin":"^style\\b","end":"$","patterns":[{"include":"#boolean"},{"name":"constant.language.dformat.pic","match":"(?x)\\b\n(addr|addrdelta|addrht|bitwid|charwid|fill|linedisp\n|linethrutext|recht|recspread|reset|textht)\\b"},{"include":"#number"}],"beginCaptures":{"0":{"name":"entity.other.attribute-name.style.dformat.pic"}}},{"name":"meta.record.dformat.pic","begin":"^\\S.*$\\R?","end":"^(?=\\S)","patterns":[{"match":"^([ \\t]+[^:\\s]+:)?(?:(?\u003c=:)|[ \\t]+)(\\S+)\\s+(.*)$","captures":{"0":{"name":"markup.list.unnumbered.dformat.pic"},"1":{"patterns":[{"include":"#main"}]},"2":{"patterns":[{"name":"punctuation.separator.dash.dformat.pic","match":"-"},{"include":"#number"}]},"3":{"patterns":[{"contentName":"source.embedded.eqn.roff","begin":"@","end":"@","patterns":[{"include":"text.roff#eqn"}],"beginCaptures":{"0":{"name":"punctuation.definition.section.begin.eqn"}},"endCaptures":{"0":{"name":"punctuation.definition.section.end.eqn"}}}]}}}],"beginCaptures":{"0":{"name":"markup.bold.heading.dformat.pic"}}}]},"embedded-latex":{"name":"source.embedded.tex.pic","match":"^(?:\\\\\\w|%).*$","captures":{"0":{"patterns":[{"include":"text.tex"}]}}},"embedded-roff":{"begin":"^(?=[.'][ \\t]*(?:\\w|\\\\))","end":"(?\u003c!\\\\)$|(\\\\\".*)$","patterns":[{"include":"text.roff"}],"endCaptures":{"1":{"patterns":[{"include":"text.roff"}]}}},"escaped-newline":{"name":"constant.character.escape.newline.pic","begin":"\\\\$\\R?","end":"^(?:[.'])?","beginCaptures":{"0":{"name":"punctuation.definition.escape.pic"}}},"function-call":{"contentName":"meta.function-call.pic","begin":"\\b(?!\\d)(\\w+)(?=\\()","end":"(?!\\G)","patterns":[{"name":"meta.arguments.pic","begin":"\\G\\(","end":"\\)","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.pic"}}}],"beginCaptures":{"1":{"patterns":[{"include":"#function-name"}]}}},"function-name":{"patterns":[{"name":"support.function.$1.pic","match":"(?:\\G|^)(atan2|cos|exp|int|log|max|min|s?rand|sin|sqrt|sprintf)$"},{"name":"entity.name.function.user-defined.pic","match":"(?:\\G|^)\\S+"}]},"globals":{"patterns":[{"name":"variable.language.global.pic","match":"(?x)\\b\n(arcrad|arrowhead|arrowht|arrowwid|boxht|boxwid|circlerad|dashwid\n|ellipseht|ellipsewid|fillval|lineht|linewid|maxpsht|maxpswid\n|moveht|movewid|scale|textht|textwid)\\b"},{"name":"variable.language.global.pikchr.pic","match":"\\b((?:left|right|top|bottom)?margin|charht|charwid|color|fill|fontscale|thickness)\\b"}]},"grap":{"patterns":[{"name":"variable.language.process-id.pic.grap","match":"\\bpid\\b"},{"name":"keyword.control.then.pic.grap","match":"\\bthen\\b"},{"name":"keyword.operator.pic.grap","match":"\\b(in|out|through)\\b"},{"include":"#comment"},{"include":"#string"},{"include":"#number"},{"include":"#boolean"},{"include":"#punctuation"},{"include":"#operators"},{"include":"#function-call"},{"include":"#macros"},{"include":"#pic-line"},{"name":"keyword.function.pic.grap","match":"(?x)\\b\n(assignment|circle|coord|copy|draw|for|frame|graph|grid|if|label\n|line|new|next|numberlist|pic|plot|print|sh|ticks?)\\b","captures":{"0":{"name":"entity.function.name.pic.grap"}}},{"name":"variable.other.property.$1.pic.grap","match":"(?x)\\b\n(above|arrow|below|bot|bottom|dashed|dotted|down|ht|invis\n|left|log|radius|right|[lr]just|size|solid|top|up|wid|x|y)\\b"},{"name":"support.function.grap.pic","match":"(?x)\\b\n(atan2|cos|exp|int|log|max|min|rand|sin|sqrt|bullet\n|plus|box|star|dot|times|htick|vtick|square|delta)\\b"},{"begin":"\\(","end":"(?=\\))|^(?=\\.P[EF]\\b|^[.']\\s*G2\\b)","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.round.chem.pic"}}},{"begin":"\\[","end":"(?=\\])|^(?=\\.P[EF]\\b|^[.']\\s*G2\\b)","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.chem.pic"}}},{"begin":"\\{","end":"(?=\\})|^(?=\\.P[EF]\\b|^[.']\\s*G2\\b)","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.curly.chem.pic"}}},{"include":"#keywords"}]},"keywords":{"patterns":[{"name":"keyword.control.$1.pic","match":"\\b(for|do|if|then(?=\\s*\\{)|else)\\b"},{"name":"keyword.operator.$1.pic","match":"\\b(and|at|by|copy|from|reset|sh|then|thru|to|with|of(?:\\s+the\\s+way\\s+between)?)\\b"},{"name":"keyword.operator.$1.dpic.pic","match":"\\b(continue|exec)\\b"},{"name":"keyword.operator.$1.pikchr.pic","match":"\\b(above|below|close|go|heading|until\\s+even\\s+with|vertex\\s+of)\\b"}]},"label":{"match":"([A-Z][^#(\"\\s:]*)(:)","captures":{"1":{"name":"storage.type.label.pic"},"2":{"name":"punctuation.separator.key-value.pic"}}},"macros":{"patterns":[{"name":"meta.function.$1.pic","match":"(define|undef)\\b\\s*(\\w*)","captures":{"1":{"name":"storage.type.function.pic"},"2":{"name":"entity.name.function.pic"}}},{"name":"variable.other.positional.pic","match":"(\\$)\\d+","captures":{"1":{"name":"punctuation.definition.variable"}}},{"begin":"(until)[ \\t]+((\")([^\"]+)(\"))\\s*$\\R?","end":"^[ ]*(\\4)\\b","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.until.pic"},"2":{"name":"string.quoted.double.pic"},"3":{"name":"punctuation.definition.string.begin.pic"},"5":{"name":"punctuation.definition.string.end.pic"}},"endCaptures":{"1":{"name":"keyword.control.terminator.pic"}}}]},"main":{"patterns":[{"include":"#comment"},{"include":"#shell-command"},{"include":"#keywords"},{"include":"#positions"},{"include":"#backref"},{"include":"#macros"},{"include":"#string"},{"include":"#number"},{"include":"#escaped-newline"},{"include":"#operators"},{"include":"#brackets"},{"include":"#punctuation"},{"include":"#primitives"},{"include":"#attributes"},{"include":"#globals"},{"include":"#function-call"},{"include":"#label"},{"include":"#name"}]},"name":{"patterns":[{"name":"variable.positional.other.pic","match":"(\\$)(?!0)\\d+\\b","captures":{"1":{"name":"punctuation.definition.variable.pic"}}},{"name":"variable.other.user-defined.non-standard.pikchr.pic","match":"([$@])\\w+","captures":{"1":{"name":"punctuation.definition.variable.pikchr.pic"}}},{"name":"variable.other.user-defined.pic","match":"(?!\\d)\\w+\\b"}]},"number":{"name":"constant.numeric.pic","match":"(?:(?\u003c!\\d)-)?(?:\\d+(?:\\.(?:\\d+|(?=[Ee][-+]?\\d)))?)(?:[Ee][-+]?\\d+)?(?:(%)|(cm|in|mm|pc|pt|px)\\b)?","captures":{"1":{"name":"constant.other.unit.percentage.pikchr.pic"},"2":{"name":"constant.other.unit.$2.pikchr.pic"}}},"operators":{"patterns":[{"name":"keyword.operator.arrow.pic","match":"\u003c-\u003e|\u003c-|-\u003e"},{"name":"keyword.operator.arrow.unicode.pikchr.pic","match":"←|→|↔"},{"name":"keyword.operator.logical.boolean.pic","match":"\u0026\u0026|\\|{2}"},{"name":"keyword.operator.comparison.relational.numeric.pic","match":"[\u003c\u003e]=?"},{"name":"keyword.operator.comparison.relational.boolean.pic","match":"[!=]="},{"name":"keyword.operator.assignment.compound.pic","match":"[-+*/]="},{"name":"keyword.operator.assignment.pic","match":":?="},{"name":"keyword.operator.arithmetic.pic","match":"[-/+*%^]"},{"name":"keyword.operator.logical.not.negation.pic","match":"!"},{"name":"keyword.operator.arrow.html-entity.pikchr.pic","match":"\u0026(?:(?:left|right|leftright)arrow|[lr]arr);","captures":{"0":{"patterns":[{"include":"text.html.basic#character-reference"}]}}}]},"pic-line":{"begin":"^(pic)\\b","end":"$","patterns":[{"include":"#main"}],"beginCaptures":{"1":{"name":"keyword.control.dformat.pic"}}},"positions":{"patterns":[{"name":"entity.other.attribute-name.corner.pic","match":"(?\u003c=\\.)(?:bottom|bot|center|end|left|right|start|top|[ns][ew]|[bcelnrstw])\\b"},{"name":"variable.language.placement.pic","match":"(?x) \\b\n( (?:bottom|center|east|end|north|south|start|top|west|Here)\n| (?:lower|upper) \\s+ (?:left|right)\n| (?:left|right) (?=\\s+ of \\b)\n) \\b"},{"name":"meta.position.pic","match":"(?\u003cbalance\u003e\u003c([^\u003c\u003e]++|\\g\u003cbalance\u003e)*+\u003e){0}\\g\u003cbalance\u003e","captures":{"0":{"patterns":[{"name":"punctuation.definition.position.bracket.angle.begin.pic","match":"\u003c"},{"name":"punctuation.definition.position.bracket.angle.end.pic","match":"\u003e"},{"name":"punctuation.separator.coordinates.comma.pic","match":","},{"include":"#main"}]}}}]},"primitives":{"patterns":[{"name":"storage.type.primitive.$1.pic","match":"\\b(box|line|arrow|circle|ellipse|arc|move|spline|print|command|plot)\\b"},{"name":"storage.type.primitive.$1.pikchr.pic","match":"\\b(oval|cylinder|file|dot|text)\\b"}]},"punctuation":{"patterns":[{"name":"punctuation.definition.bracket.curly.pic","match":"\\}"},{"name":"punctuation.definition.bracket.round.pic","match":"\\)"},{"name":"punctuation.definition.bracket.square.pic","match":"\\]"},{"name":"punctuation.terminator.statement.pic","match":";"},{"name":"punctuation.separator.comma.pic","match":","},{"name":"punctuation.definition.bracket.angle.pic","match":"\u003c|\u003e"},{"name":"punctuation.delimiter.period.full-stop.pic","match":"\\.(?!\\d)"}]},"shell-braces":{"name":"meta.scope.group.shell","begin":"{","end":"}","patterns":[{"include":"#shell-braces"},{"include":"source.shell"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.shell.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.group.shell.end.shell"}}},"shell-command":{"name":"meta.shell-command.pic","begin":"\\b(sh)\\b[ \\t]*","end":"(?!\\G)","patterns":[{"contentName":"source.embedded.shell","begin":"\\G{","end":"}","patterns":[{"include":"#shell-braces"},{"include":"source.shell"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.brace.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.brace.end.pic"}},"applyEndPatternLast":true},{"contentName":"source.embedded.shell","begin":"\\G(.)","end":"\\1","patterns":[{"include":"source.shell"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.arbitrary-delimiter.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.balanced-text.arbitrary-delimiter.end.pic"}}}],"beginCaptures":{"1":{"name":"keyword.operator.$1.pic"}}},"string":{"name":"string.quoted.double.pic","begin":"\"","end":"\"","patterns":[{"include":"#string-escapes"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pic"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pic"}}},"string-escapes":{"patterns":[{"name":"constant.character.escape.pic","match":"(\\\\)[\\\\\"]","captures":{"1":{"name":"punctuation.definition.escape.pic"}}},{"match":"(?:[^\"\\\\]|\\\\[^\"])+","captures":{"0":{"patterns":[{"include":"text.roff#escapes"}]}}}]},"tags":{"patterns":[{"name":"invalid.deprecated.function.picture.macro.roff","match":"^([.'])[ \\t]*(PS)[ \\t]*(\u003c)(.*)(?=$|\\\\\")","captures":{"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"},"3":{"name":"punctuation.definition.filename.roff"},"4":{"patterns":[{"include":"text.roff#params"}]}}},{"contentName":"source.embedded.pic","begin":"^([.'])[ \\t]*(PS)\\b([\\d \\t]*(?:#.*)?)?(\\\\[#\"].*)?$","end":"^([.'])[ \\t]*(P[EFY])\\b","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"meta.function.begin.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"},"3":{"patterns":[{"include":"source.pic"}]},"4":{"patterns":[{"include":"text.roff#escapes"}]}},"endCaptures":{"0":{"name":"meta.function.end.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.name.function.roff"}}},{"contentName":"source.embedded.chem.pic","begin":"^([.'])[ \\t]*(cstart)\\b\\s*(\\S.*)?","end":"^([.'])[ \\t]*(cend)\\b","patterns":[{"include":"#chem"}],"beginCaptures":{"0":{"name":"meta.function.begin.chemical.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.chem"},"2":{"name":"entity.function.name.roff"},"3":{"name":"invalid.illegal.unexpected-characters.pic.chem"}},"endCaptures":{"0":{"name":"meta.function.end.chemical.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"}}},{"contentName":"source.embedded.dformat.pic","begin":"^([.'])[ \\t]*(begin[ \\t]+dformat)\\b","end":"^([.'])[ \\t]*(end)\\b","patterns":[{"include":"#dformat"}],"beginCaptures":{"0":{"name":"meta.function.begin.dformat.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.dformat"},"2":{"name":"entity.function.name.roff"}},"endCaptures":{"0":{"name":"meta.function.end.dformat.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.roff"},"2":{"name":"entity.function.name.roff"}}},{"contentName":"source.embedded.grap.pic","begin":"^([.'])[ \\t]*(G1)\\b(\\s*\\d+)?(\\s*\\\\\".*$)?","end":"^([.'])[ \\t]*(G2)\\b","patterns":[{"include":"#grap"}],"beginCaptures":{"0":{"name":"meta.function.begin.graph.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.grap"},"2":{"name":"entity.function.name.roff"},"3":{"name":"constant.numeric.parameter.pic.grap"},"4":{"patterns":[{"include":"text.roff#escapes"}]}},"endCaptures":{"0":{"name":"meta.function.end.graph.picture.section.macro.roff"},"1":{"name":"punctuation.definition.macro.pic.grap"},"2":{"name":"entity.function.name.roff"}}}]}}}
|
data/grammars/source.pony.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Pony","scopeName":"source.pony","patterns":[{"include":"#block-comments"},{"include":"#line-comments"},{"include":"#typedeclarations"},{"include":"#methoddeclarations"},{"include":"#keywords"},{"include":"#constants"},{"include":"#identifiers"},{"include":"#strings"}],"repository":{"block-comments":{"name":"comment.block.pony","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block-comments"}]},"constants":{"patterns":[{"name":"constant.other.pony","match":"\\b(this)\\b"},{"name":"constant.language.pony","match":"\\b(true|false)\\b"},{"name":"constant.numeric.pony","match":"\\b((0b[0-1_]*)|(0x[0-9a-fA-F_]*)|([0-9][0-9_]*(\\.[0-9][0-9_]*)?((e|E)(\\+|-)?[0-9_]+)?))\\b"}]},"identifiers":{"patterns":[{"match":"\\b([_a-z][_a-zA-Z0-9]*)\\b(\\(|\\[)","captures":{"1":{"name":"support.function.pony"}}},{"match":"\\.\\s*([_a-z][_a-zA-Z0-9]*)\\b[^\\(\\[]","captures":{"1":{"name":"variable.parameter.pony"}}},{"match":"@\\s*([_a-zA-z][_a-zA-Z0-9]*)\\s*(\\(|\\[)","captures":{"1":{"name":"support.function.pony"}}},{"name":"entity.name.class.pony","match":"\\b(_*[A-Z][_a-zA-Z0-9]*)\\b"},{"match":"\\b(_*[a-z][_a-zA-Z0-9']*)"}]},"keywords":{"patterns":[{"name":"keyword.other.intrinsic.pony","match":"\\b(compile_intrinsic|compile_error)\\b"},{"name":"keyword.other.import.pony","match":"\\b(use)\\b"},{"name":"keyword.other.declaration.pony","match":"\\b(var|let|embed
|
1
|
+
{"name":"Pony","scopeName":"source.pony","patterns":[{"include":"#block-comments"},{"include":"#line-comments"},{"include":"#typedeclarations"},{"include":"#methoddeclarations"},{"include":"#keywords"},{"include":"#constants"},{"include":"#identifiers"},{"include":"#strings"}],"repository":{"block-comments":{"name":"comment.block.pony","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block-comments"}]},"constants":{"patterns":[{"name":"constant.other.pony","match":"\\b(this)\\b"},{"name":"constant.language.pony","match":"\\b(true|false)\\b"},{"name":"constant.numeric.pony","match":"\\b((0b[0-1_]*)|(0x[0-9a-fA-F_]*)|([0-9][0-9_]*(\\.[0-9][0-9_]*)?((e|E)(\\+|-)?[0-9_]+)?))\\b"}]},"identifiers":{"patterns":[{"match":"\\b([_a-z][_a-zA-Z0-9]*)\\b(\\(|\\[)","captures":{"1":{"name":"support.function.pony"}}},{"match":"\\.\\s*([_a-z][_a-zA-Z0-9]*)\\b[^\\(\\[]","captures":{"1":{"name":"variable.parameter.pony"}}},{"match":"@\\s*([_a-zA-z][_a-zA-Z0-9]*)\\s*(\\(|\\[)","captures":{"1":{"name":"support.function.pony"}}},{"name":"entity.name.class.pony","match":"\\b(_*[A-Z][_a-zA-Z0-9]*)\\b"},{"match":"\\b(_*[a-z][_a-zA-Z0-9']*)"}]},"keywords":{"patterns":[{"name":"keyword.other.intrinsic.pony","match":"\\b(compile_intrinsic|compile_error)\\b"},{"name":"keyword.other.import.pony","match":"\\b(use)\\b"},{"name":"keyword.other.declaration.pony","match":"\\b(var|let|embed)\\b"},{"name":"entity.other.attribute-name.pony","match":"\\b(iso|trn|ref|val|box|tag)\\b"},{"name":"keyword.control.jump.pony","match":"\\b(break|continue|return|error)\\b"},{"name":"keyword.control.pony","match":"\\b(if|ifdef|then|elseif|else|end|match|where|try|with|as|recover|consume|object|digestof)\\b"},{"name":"keyword.control.loop.pony","match":"\\b(while|do|repeat|until|for|in)\\b"},{"match":"(\\?|[-=]\u003e)"},{"match":"(\\-|\\+|\\*|/(?![/*])|%|\u003c\u003c|\u003e\u003e)"},{"match":"(==|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"match":"\\b(is|isnt|not|and|or|xor)\\b"},{"match":"="},{"match":"(\\||\\\u0026|\\,|\\^)"}]},"line-comments":{"name":"comment.line.double-slash.pony","begin":"//","end":"\\n"},"methoddeclarations":{"match":"\\b(new|be|fun)\\s+(\\\\[_a-z][_a-zA-Z0-9]*\\\\)?\\s*(iso|trn|ref|val|box|tag)?\\b\\s*([_a-z][_a-zA-Z0-9]*)","captures":{"1":{"name":"keyword.declaration.pony"},"2":{"name":"support.other.annotation.pony"},"3":{"name":"keyword.other.capability.pony"},"4":{"name":"entity.name.function.pony"}}},"strings":{"patterns":[{"name":"constant.character.pony","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.pony","match":"\\\\(?:[abfnrtv\\\\\"0]|x[0-9A-Fa-f]{2})"},{"name":"invalid.illegal.pony","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.character.begin.pony"}},"endCaptures":{"0":{"name":"punctuation.definition.character.end.pony"}}},{"name":"variable.parameter.pony","begin":"\"\"\"","end":"\"\"\"(?!\")","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pony"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pony"}}},{"name":"string.quoted.double.pony","begin":"\"","end":"\"","patterns":[{"name":"constant.string.escape.pony","match":"\\\\(?:[abfnrtv\\\\\"0]|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{6})"},{"name":"invalid.illegal.pony","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pony"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pony"}}}]},"typedeclarations":{"match":"\\b(type|interface|trait|primitive|struct|class|actor)\\s+(\\\\[_a-z][_a-zA-Z0-9]*\\\\)?\\s*(iso|trn|ref|val|box|tag)?@?\\s*([_A-Z][_a-zA-Z0-9]*)","captures":{"1":{"name":"keyword.declaration.pony"},"2":{"name":"support.other.annotation.pony"},"3":{"name":"keyword.other.capability.pony"},"4":{"name":"entity.name.type.pony"}}}}}
|