UNPKG

tm-grammars

Version:
790 lines (789 loc) 18.7 kB
{ "displayName": "Nextflow Groovy", "foldingStartMarker": "(\\{\\s*$|^\\s*// \\{\\{\\{)", "foldingStopMarker": "^\\s*(}|// }}}$)", "name": "nextflow-groovy", "patterns": [ { "captures": { "1": { "name": "punctuation.definition.comment.groovy" } }, "match": "^(#!).+$\\n", "name": "comment.line.hashbang.groovy" }, { "include": "#groovy" } ], "repository": { "braces": { "begin": "\\{", "end": "}", "patterns": [ { "include": "#groovy-code" } ] }, "closures": { "begin": "\\{(?=.*?->)", "end": "}", "patterns": [ { "begin": "(?<=\\{)(?=[^}]*?->)", "end": "->", "endCaptures": { "0": { "name": "keyword.operator.groovy" } }, "patterns": [ { "begin": "(?!->)", "end": "(?=->)", "name": "meta.closure.parameters.groovy", "patterns": [ { "begin": "(?!,|->)", "end": "(?=,|->)", "name": "meta.closure.parameter.groovy", "patterns": [ { "begin": "=", "beginCaptures": { "0": { "name": "keyword.operator.assignment.groovy" } }, "end": "(?=,|->)", "name": "meta.parameter.default.groovy", "patterns": [ { "include": "#groovy-code" } ] }, { "include": "#parameters" } ] } ] } ] }, { "begin": "(?=[^}])", "end": "(?=})", "patterns": [ { "include": "#groovy-code" } ] } ] }, "comments": { "patterns": [ { "captures": { "0": { "name": "punctuation.definition.comment.groovy" } }, "match": "/\\*\\*/", "name": "comment.block.empty.groovy" }, { "include": "text.html.javadoc" }, { "begin": "/\\*", "captures": { "0": { "name": "punctuation.definition.comment.groovy" } }, "end": "\\*/", "name": "comment.block.groovy" }, { "captures": { "1": { "name": "punctuation.definition.comment.groovy" } }, "match": "(//).*$\\n?", "name": "comment.line.double-slash.groovy" } ] }, "constants": { "patterns": [ { "match": "\\b([A-Z][0-9A-Z_]+)\\b", "name": "constant.other.groovy" }, { "match": "\\b(true|false|null)\\b", "name": "constant.language.groovy" } ] }, "constructor-call": { "begin": "\\bnew\\b", "beginCaptures": { "0": { "name": "keyword.control.new.groovy" } }, "end": "(?<=\\))|$", "patterns": [ { "begin": "(?=\\w.*\\(?)", "end": "(?<=\\))|$", "patterns": [ { "include": "#object-types" }, { "begin": "\\(", "beginCaptures": { "1": { "name": "storage.type.groovy" } }, "end": "\\)", "patterns": [ { "include": "#groovy" } ] } ] } ] }, "groovy": { "patterns": [ { "include": "#comments" }, { "include": "#variables" }, { "include": "#groovy-code" } ] }, "groovy-code": { "patterns": [ { "include": "#groovy-code-minus-map-keys" }, { "include": "#map-keys" } ] }, "groovy-code-minus-map-keys": { "patterns": [ { "include": "#comments" }, { "include": "#keyword-language" }, { "include": "#values" }, { "include": "#keyword-operator" }, { "include": "#types" }, { "include": "#parens" }, { "include": "#closures" }, { "include": "#braces" } ] }, "keyword": { "patterns": [ { "include": "#keyword-operator" }, { "include": "#keyword-language" } ] }, "keyword-language": { "patterns": [ { "match": "\\b(try|catch|throw)\\b", "name": "keyword.control.exception.groovy" }, { "match": "\\b((?<!\\.)(?:return|if|else))\\b", "name": "keyword.control.groovy" }, { "begin": "\\b(assert)\\s", "beginCaptures": { "1": { "name": "keyword.control.assert.groovy" } }, "end": "$|[;}]", "name": "meta.declaration.assertion.groovy", "patterns": [ { "match": ":", "name": "keyword.operator.assert.expression-seperator.groovy" }, { "include": "#groovy-code-minus-map-keys" } ] } ] }, "keyword-operator": { "patterns": [ { "match": "\\b(as)\\b", "name": "keyword.operator.as.groovy" }, { "match": "\\b(in)\\b", "name": "keyword.operator.in.groovy" }, { "match": "\\?:", "name": "keyword.operator.elvis.groovy" }, { "match": "\\.\\.", "name": "keyword.operator.range.groovy" }, { "match": "->", "name": "keyword.operator.arrow.groovy" }, { "match": "<<", "name": "keyword.operator.leftshift.groovy" }, { "match": "(?<=\\S)\\.(?=\\S)", "name": "keyword.operator.navigation.groovy" }, { "match": "(?<=\\S)\\?\\.(?=\\S)", "name": "keyword.operator.safe-navigation.groovy" }, { "begin": "\\?", "beginCaptures": { "0": { "name": "keyword.operator.ternary.groovy" } }, "end": "(?=$|[])}])", "name": "meta.evaluation.ternary.groovy", "patterns": [ { "match": ":", "name": "keyword.operator.ternary.expression-seperator.groovy" }, { "include": "#groovy-code-minus-map-keys" } ] }, { "match": "==~", "name": "keyword.operator.match.groovy" }, { "match": "=~", "name": "keyword.operator.find.groovy" }, { "match": "\\b(instanceof)\\b", "name": "keyword.operator.instanceof.groovy" }, { "match": "(==|!=|<=|>=|<=>|<>|[<>]|<<)", "name": "keyword.operator.comparison.groovy" }, { "match": "=", "name": "keyword.operator.assignment.groovy" }, { "match": "(--|\\+\\+)", "name": "keyword.operator.increment-decrement.groovy" }, { "match": "([-%*+/])", "name": "keyword.operator.arithmetic.groovy" }, { "match": "(!|&&|\\|\\|)", "name": "keyword.operator.logical.groovy" } ] }, "map-keys": { "patterns": [ { "captures": { "1": { "name": "constant.other.key.groovy" }, "2": { "name": "punctuation.definition.seperator.key-value.groovy" } }, "match": "(\\w+)\\s*(:)" } ] }, "method-call": { "begin": "([$\\w]+)(\\()", "beginCaptures": { "1": { "name": "meta.method.groovy" }, "2": { "name": "punctuation.definition.method-parameters.begin.groovy" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.method-parameters.end.groovy" } }, "name": "meta.method-call.groovy", "patterns": [ { "match": ",", "name": "punctuation.definition.seperator.parameter.groovy" }, { "include": "#groovy-code" } ] }, "nest-curly": { "begin": "\\{", "captures": { "0": { "name": "punctuation.section.scope.groovy" } }, "end": "}", "patterns": [ { "include": "#nest-curly" } ] }, "numbers": { "patterns": [ { "match": "((0([Xx])\\h*)|([-+])?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))(([Ee])([-+])?[0-9]+)?)([DFLUdfglu]|UL|ul)?\\b", "name": "constant.numeric.groovy" } ] }, "object-types": { "patterns": [ { "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[IL]))<", "end": "[>[^],<?\\[\\w\\s]]", "name": "storage.type.generic.groovy", "patterns": [ { "include": "#object-types" }, { "begin": "<", "end": "[>[^],<\\[\\w\\s]]", "name": "storage.type.generic.groovy" } ] }, { "match": "\\b(?:[A-Za-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[IL])\\b", "name": "storage.type.groovy" } ] }, "parameters": { "patterns": [ { "include": "#types" }, { "match": "\\w+", "name": "variable.parameter.method.groovy" } ] }, "parens": { "begin": "\\(", "end": "\\)", "patterns": [ { "include": "#groovy-code" } ] }, "primitive-types": { "patterns": [ { "match": "\\b(?:boolean|byte|char|short|int|float|long|double)\\b", "name": "storage.type.primitive.groovy" } ] }, "string-quoted-double": { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.groovy" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.groovy" } }, "name": "string.quoted.double.groovy", "patterns": [ { "include": "#string-quoted-double-contents" } ] }, "string-quoted-double-contents": { "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.groovy" }, { "applyEndPatternLast": 1, "begin": "\\$\\w", "end": "(?=\\W)", "name": "variable.other.interpolated.groovy", "patterns": [ { "match": "\\w", "name": "variable.other.interpolated.groovy" }, { "match": "\\.", "name": "keyword.other.dereference.groovy" } ] }, { "begin": "\\$\\{", "captures": { "0": { "name": "punctuation.section.embedded.groovy" } }, "end": "}", "name": "source.groovy.embedded.source", "patterns": [ { "include": "#nest-curly" } ] } ] }, "string-quoted-double-multiline": { "begin": "\"\"\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.groovy" } }, "end": "\"\"\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.groovy" } }, "name": "string.quoted.double.multiline.groovy", "patterns": [ { "include": "#string-quoted-double-contents" } ] }, "string-quoted-single": { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.groovy" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.groovy" } }, "name": "string.quoted.single.groovy", "patterns": [ { "include": "#string-quoted-single-contents" } ] }, "string-quoted-single-contents": { "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.groovy" } ] }, "string-quoted-single-multiline": { "begin": "'''", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.groovy" } }, "end": "'''", "endCaptures": { "0": { "name": "punctuation.definition.string.end.groovy" } }, "name": "string.quoted.single.multiline.groovy", "patterns": [ { "include": "#string-quoted-single-contents" } ] }, "string-slashy": { "patterns": [ { "begin": "/(?=[^/]+/([^>]|$))", "beginCaptures": { "0": { "name": "punctuation.definition.string.regexp.begin.groovy" } }, "end": "/", "endCaptures": { "0": { "name": "punctuation.definition.string.regexp.end.groovy" } }, "name": "string.regexp.groovy", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.groovy" } ] }, { "begin": "~\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.regexp.begin.groovy" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.regexp.end.groovy" } }, "name": "string.regexp.compiled.groovy", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.groovy" } ] } ] }, "strings": { "patterns": [ { "include": "#string-quoted-double-multiline" }, { "include": "#string-quoted-single-multiline" }, { "include": "#string-quoted-double" }, { "include": "#string-quoted-single" }, { "include": "#string-slashy" } ] }, "structures": { "begin": "\\[", "beginCaptures": { "0": { "name": "punctuation.definition.structure.begin.groovy" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.definition.structure.end.groovy" } }, "name": "meta.structure.groovy", "patterns": [ { "include": "#groovy-code" }, { "match": ",", "name": "punctuation.definition.separator.groovy" } ] }, "types": { "patterns": [ { "match": "\\b(def)\\b", "name": "storage.type.def.groovy" }, { "include": "#primitive-types" }, { "include": "#object-types" } ] }, "values": { "patterns": [ { "include": "#strings" }, { "include": "#numbers" }, { "include": "#constants" }, { "include": "#types" }, { "include": "#structures" }, { "include": "#method-call" }, { "include": "#constructor-call" } ] }, "variables": { "patterns": [ { "applyEndPatternLast": 1, "begin": "(?=(?:def|(?:boolean|byte|char|short|int|float|long|double)|(?:[a-z]\\w*\\.)*[A-Z]+\\w*)\\s+[],<>\\[_\\w\\d\\s]+(?:=|$))", "end": ";|$", "name": "meta.definition.variable.groovy", "patterns": [ { "match": "\\s" }, { "captures": { "1": { "name": "constant.variable.groovy" } }, "match": "([0-9A-Z_]+)\\s+(?==)" }, { "captures": { "1": { "name": "meta.definition.variable.name.groovy" } }, "match": "(\\w[^,\\s]*)\\s+(?==)" }, { "captures": { "1": { "name": "storage.type.groovy" } }, "match": ": (\\w+)", "patterns": [ { "include": "#types" } ] }, { "begin": "=", "beginCaptures": { "0": { "name": "keyword.operator.assignment.groovy" } }, "end": "$", "patterns": [ { "include": "#groovy-code" } ] }, { "captures": { "1": { "name": "meta.definition.variable.name.groovy" } }, "match": "(\\w[^=\\s]*)(?=\\s*($|;))" }, { "include": "#groovy-code" } ] } ] } }, "scopeName": "source.nextflow-groovy" }