{ "name": "Dever", "scopeName": "source.dever", "patterns": [ { "include": "#comments" }, { "include": "#strings" }, { "include": "#unsupported" }, { "include": "#declarations" }, { "include": "#constants" }, { "include": "#numbers" }, { "include": "#names" }, { "include": "#keywords" }, { "include": "#operators" } ], "repository": { "comments": { "name": "comment.line.number-sign.dever", "begin": "#", "end": "$" }, "strings": { "name": "string.quoted.double.dever", "begin": "\"", "end": "\"|$", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.dever" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.dever" } }, "patterns": [ { "name": "constant.character.escape.dever", "match": "\\\\(?:[\"\\\\nrt]|u\\{[0-9A-Fa-f]{1,6}\\})" }, { "name": "invalid.illegal.escape.dever", "match": "\\\\." } ] }, "declarations": { "patterns": [ { "match": "\\b(type)\\s+([A-Z][A-Za-z0-9_]*)", "captures": { "1": { "name": "storage.type.dever" }, "2": { "name": "entity.name.type.dever" } } }, { "match": "^\\s*(?:(public)\\s+)?(get|post|put|delete|cmd|rest)\\b", "captures": { "1": { "name": "storage.modifier.dever" }, "2": { "name": "keyword.control.api.dever" } } }, { "match": "^\\s*(external)\\s+(command|exec|pip|npm|go)\\b", "captures": { "1": { "name": "storage.modifier.external.dever" }, "2": { "name": "keyword.other.external.dever" } } }, { "name": "keyword.other.declaration.dever", "match": "^\\s*(database|relation|seed|migrate|sql|index|unique|schedule)\\b" } ] }, "constants": { "name": "constant.language.dever", "match": "\\b(true|false|null|other)\\b" }, "unsupported": { "name": "invalid.illegal.keyword.dever", "match": "\\b(package|exposes|if|else|switch|match|when|by|for|while|break|continue|iterate|recur|repeat|return|function|throw|catch|try|import|use|class|interface|unsafe|macro)\\b" }, "numbers": { "name": "constant.numeric.dever", "match": "(?=|[=+*/%<>?-]" }, { "name": "punctuation.section.dever", "match": "[{}()\\[\\]]" }, { "name": "punctuation.separator.dever", "match": "[,:.]" } ] } } }