diff --git a/syntaxes/mist.tmLanguage.json b/syntaxes/mist.tmLanguage.json index 44e375f..04297e3 100644 --- a/syntaxes/mist.tmLanguage.json +++ b/syntaxes/mist.tmLanguage.json @@ -1,31 +1,77 @@ { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "Mist", + "name": "mist", "scopeName": "source.mist", "patterns": [ - { "include": "#comments" }, - { "include": "#strings" }, - { "include": "#attributes" }, - { "include": "#macros" }, - { "include": "#type_declarations" }, - { "include": "#keywords" }, - { "include": "#numbers" }, - { "include": "#lifetimes" }, - { "include": "#generics" }, - { "include": "#types" }, - { "include": "#namespaces" }, - { "include": "#imports" }, - { "include": "#modules" }, - { "include": "#struct_literals" }, - { "include": "#method_calls" }, - { "include": "#field_access" }, - { "include": "#arrow" }, - { "include": "#return_arrow" }, - { "include": "#functions" }, - { "include": "#path_continuation" }, - { "include": "#operators" }, - { "include": "#punctuation" }, - { "include": "#variables" } + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#attributes" + }, + { + "include": "#macros" + }, + { + "include": "#type_declarations" + }, + { + "include": "#keywords" + }, + { + "include": "#numbers" + }, + { + "include": "#lifetimes" + }, + { + "include": "#generics" + }, + { + "include": "#types" + }, + { + "include": "#namespaces" + }, + { + "include": "#imports" + }, + { + "include": "#modules" + }, + { + "include": "#struct_literals" + }, + { + "include": "#method_calls" + }, + { + "include": "#field_access" + }, + { + "include": "#arrow" + }, + { + "include": "#return_arrow" + }, + { + "include": "#functions" + }, + { + "include": "#path_continuation" + }, + { + "include": "#operators" + }, + { + "include": "#punctuation" + }, + { + "include": "#variables" + } ], "repository": { "comments": { @@ -35,55 +81,120 @@ "strings": { "name": "string.quoted.double.mist", "begin": "\"", - "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.mist" } }, + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.mist" + } + }, "end": "\"", - "endCaptures": { "0": { "name": "punctuation.definition.string.end.mist" } }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.mist" + } + }, "patterns": [ - { "match": "\\\\.", "name": "constant.character.escape.mist" } + { + "match": "\\\\.", + "name": "constant.character.escape.mist" + } ] }, "attributes": { "name": "meta.attribute.mist", "begin": "#!?\\[", - "beginCaptures": { "0": { "name": "punctuation.definition.attribute.begin.mist" } }, + "beginCaptures": { + "0": { + "name": "punctuation.definition.attribute.begin.mist" + } + }, "end": "\\]", - "endCaptures": { "0": { "name": "punctuation.definition.attribute.end.mist" } }, - "patterns": [{ "include": "$self" }] + "endCaptures": { + "0": { + "name": "punctuation.definition.attribute.end.mist" + } + }, + "patterns": [ + { + "include": "$self" + } + ] }, "macros": { "patterns": [ { "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(!)(\\()", "beginCaptures": { - "1": { "name": "entity.name.function.macro.mist" }, - "2": { "name": "keyword.operator.macro.mist" }, - "3": { "name": "punctuation.parenthesis.begin.mist" } + "1": { + "name": "entity.name.function.macro.mist" + }, + "2": { + "name": "keyword.operator.macro.mist" + }, + "3": { + "name": "punctuation.parenthesis.begin.mist" + } }, "end": "\\)", - "endCaptures": { "0": { "name": "punctuation.parenthesis.end.mist" } }, - "patterns": [{ "include": "$self" }] + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.end.mist" + } + }, + "patterns": [ + { + "include": "$self" + } + ] }, { "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(!)(\\[)", "beginCaptures": { - "1": { "name": "entity.name.function.macro.mist" }, - "2": { "name": "keyword.operator.macro.mist" }, - "3": { "name": "punctuation.bracket.begin.mist" } + "1": { + "name": "entity.name.function.macro.mist" + }, + "2": { + "name": "keyword.operator.macro.mist" + }, + "3": { + "name": "punctuation.bracket.begin.mist" + } }, "end": "\\]", - "endCaptures": { "0": { "name": "punctuation.bracket.end.mist" } }, - "patterns": [{ "include": "$self" }] + "endCaptures": { + "0": { + "name": "punctuation.bracket.end.mist" + } + }, + "patterns": [ + { + "include": "$self" + } + ] }, { "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(!)(\\{)", "beginCaptures": { - "1": { "name": "entity.name.function.macro.mist" }, - "2": { "name": "keyword.operator.macro.mist" }, - "3": { "name": "punctuation.curly.brace.begin.mist" } + "1": { + "name": "entity.name.function.macro.mist" + }, + "2": { + "name": "keyword.operator.macro.mist" + }, + "3": { + "name": "punctuation.curly.brace.begin.mist" + } }, "end": "\\}", - "endCaptures": { "0": { "name": "punctuation.curly.brace.end.mist" } }, - "patterns": [{ "include": "$self" }] + "endCaptures": { + "0": { + "name": "punctuation.curly.brace.end.mist" + } + }, + "patterns": [ + { + "include": "$self" + } + ] } ] }, @@ -92,31 +203,57 @@ { "match": "\\b(struct|enum|class|trait)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", "captures": { - "1": { "name": "storage.type.mist" }, - "2": { "name": "entity.name.type.mist" } + "1": { + "name": "storage.type.mist" + }, + "2": { + "name": "entity.name.type.mist" + } } }, { "match": "\\b(fn)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", "captures": { - "1": { "name": "storage.type.mist" }, - "2": { "name": "entity.name.function.mist" } + "1": { + "name": "storage.type.mist" + }, + "2": { + "name": "entity.name.function.mist" + } } } ] }, "keywords": { "patterns": [ - { "match": "\\b(if|else|while|for|return|break|continue|match|loop)\\b", "name": "keyword.control.mist" }, - { "match": "\\b(struct|enum|class|trait|fn|let|impl|class)\\b", "name": "storage.modifier.mist" }, - { "match": "\\b(pub|mut|use|mod|as|dyn|unsafe|self|constructor)\\b", "name": "keyword.other.mist" }, - { "match": "\\b(true|false)\\b", "name": "constant.language.boolean.mist" } + { + "match": "\\b(if|else|while|for|return|break|continue|match|loop)\\b", + "name": "keyword.control.mist" + }, + { + "match": "\\b(struct|enum|class|trait|fn|let|impl|class)\\b", + "name": "storage.modifier.mist" + }, + { + "match": "\\b(pub|mut|use|mod|as|dyn|unsafe|self|super|Super|constructor|override)\\b", + "name": "keyword.other.mist" + }, + { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.mist" + } ] }, "numbers": { "patterns": [ - { "match": "\\b\\d+\\.\\d+\\b", "name": "constant.numeric.float.mist" }, - { "match": "\\b\\d+\\b", "name": "constant.numeric.integer.mist" } + { + "match": "\\b\\d+\\.\\d+\\b", + "name": "constant.numeric.float.mist" + }, + { + "match": "\\b\\d+\\b", + "name": "constant.numeric.integer.mist" + } ] }, "lifetimes": { @@ -127,20 +264,51 @@ "patterns": [ { "begin": "(?<=[a-zA-Z0-9_>])<(?![=<>])", - "beginCaptures": { "0": { "name": "punctuation.brackets.angle.mist" } }, + "beginCaptures": { + "0": { + "name": "punctuation.brackets.angle.mist" + } + }, "end": "(?", - "endCaptures": { "0": { "name": "punctuation.brackets.angle.mist" } }, + "endCaptures": { + "0": { + "name": "punctuation.brackets.angle.mist" + } + }, "patterns": [ - { "include": "#comments" }, - { "include": "#strings" }, - { "include": "#lifetimes" }, - { "include": "#types" }, - { "match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b", "name": "entity.name.type.mist" }, - { "match": ",", "name": "punctuation.separator.mist" }, - { "match": "[:+]", "name": "keyword.operator.mist" }, - { "include": "#field_access" }, - { "include": "#path_continuation" }, - { "include": "#generics" } + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#lifetimes" + }, + { + "include": "#types" + }, + { + "match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b", + "name": "entity.name.type.mist" + }, + { + "match": ",", + "name": "punctuation.separator.mist" + }, + { + "match": "[:+]", + "name": "keyword.operator.mist" + }, + { + "include": "#field_access" + }, + { + "include": "#path_continuation" + }, + { + "include": "#generics" + } ] } ] @@ -164,20 +332,26 @@ "namespaces": { "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(?=\\s*::)", "captures": { - "1": { "name": "entity.name.namespace.mist" } + "1": { + "name": "entity.name.namespace.mist" + } } }, "imports": { "match": "\\buse\\s+([a-zA-Z_][a-zA-Z0-9_]*(?:\\s*::\\s*[a-zA-Z_][a-zA-Z0-9_]*)*)\\s*;", "captures": { - "1": { "name": "entity.name.namespace.mist" } + "1": { + "name": "entity.name.namespace.mist" + } }, "name": "meta.import.mist" }, "modules": { "match": "(?:pub\\s+)?\\bmod\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*;", "captures": { - "1": { "name": "entity.name.namespace.module.mist" } + "1": { + "name": "entity.name.namespace.module.mist" + } } }, "struct_literals": { @@ -185,22 +359,51 @@ { "begin": "\\b([A-Z][a-zA-Z0-9_]*)\\s*(\\{)", "beginCaptures": { - "1": { "name": "entity.name.type.mist" }, - "2": { "name": "punctuation.curly.brace.begin.mist" } + "1": { + "name": "entity.name.type.mist" + }, + "2": { + "name": "punctuation.curly.brace.begin.mist" + } }, "end": "\\}", - "endCaptures": { "0": { "name": "punctuation.curly.brace.end.mist" } }, + "endCaptures": { + "0": { + "name": "punctuation.curly.brace.end.mist" + } + }, "patterns": [ - { "include": "#strings" }, - { "include": "#numbers" }, - { "include": "#keywords" }, - { "include": "#lifetimes" }, - { "include": "#types" }, - { "include": "#operators" }, - { "include": "#punctuation" }, - { "include": "#field_access" }, - { "match": "[a-zA-Z_][a-zA-Z0-9_]*\\s*(?=:)", "name": "variable.object.field.mist" }, - { "include": "$self" } + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#keywords" + }, + { + "include": "#lifetimes" + }, + { + "include": "#types" + }, + { + "include": "#operators" + }, + { + "include": "#punctuation" + }, + { + "include": "#field_access" + }, + { + "match": "[a-zA-Z_][a-zA-Z0-9_]*\\s*(?=:)", + "name": "variable.object.field.mist" + }, + { + "include": "$self" + } ] } ] @@ -208,19 +411,25 @@ "method_calls": { "match": "\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=\\()", "captures": { - "1": { "name": "entity.name.function.mist" } + "1": { + "name": "entity.name.function.mist" + } } }, "field_access": { "match": "\\.([a-zA-Z_][a-zA-Z0-9_]*)\\b", "captures": { - "1": { "name": "variable.other.property.mist" } + "1": { + "name": "variable.other.property.mist" + } } }, "path_continuation": { "match": "::\\s*([a-zA-Z_][a-zA-Z0-9_]*+)(?!\\s*\\()", "captures": { - "1": { "name": "entity.name.namespace.mist" } + "1": { + "name": "entity.name.namespace.mist" + } } }, "arrow": { @@ -252,4 +461,4 @@ "name": "variable.other.mist" } } -} +} \ No newline at end of file