Move the language server into devtools, wire the VS Code extension, and show anonymous closures (eve_update = function) by frame prototype instead of a shifted CallGraph zip. Co-authored-by: Cursor <cursoragent@cursor.com>
94 lines
2.7 KiB
JSON
94 lines
2.7 KiB
JSON
{
|
|
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
|
"name": "EveScript",
|
|
"scopeName": "source.evescript",
|
|
"fileTypes": ["nut"],
|
|
"patterns": [
|
|
{ "include": "#comments" },
|
|
{ "include": "#strings" },
|
|
{ "include": "#constants" },
|
|
{ "include": "#language-vars" },
|
|
{ "include": "#keywords" },
|
|
{ "include": "#numbers" },
|
|
{ "include": "#class-decl" },
|
|
{ "include": "#function-decl" }
|
|
],
|
|
"repository": {
|
|
"comments": {
|
|
"patterns": [
|
|
{
|
|
"name": "comment.line.double-slash.evescript",
|
|
"match": "//.*$"
|
|
},
|
|
{
|
|
"name": "comment.block.evescript",
|
|
"begin": "/\\*",
|
|
"end": "\\*/"
|
|
}
|
|
]
|
|
},
|
|
"strings": {
|
|
"patterns": [
|
|
{
|
|
"name": "string.quoted.double.evescript",
|
|
"begin": "@?\"",
|
|
"end": "\"",
|
|
"patterns": [
|
|
{ "name": "constant.character.escape.evescript", "match": "\\\\." }
|
|
]
|
|
},
|
|
{
|
|
"name": "string.quoted.single.evescript",
|
|
"begin": "@?'",
|
|
"end": "'",
|
|
"patterns": [
|
|
{ "name": "constant.character.escape.evescript", "match": "\\\\." }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"constants": {
|
|
"name": "constant.language.boolean.evescript",
|
|
"match": "\\b(true|false|null|nullrel)\\b"
|
|
},
|
|
"language-vars": {
|
|
"name": "variable.language.this.evescript",
|
|
"match": "\\b(this|base|self)\\b"
|
|
},
|
|
"keywords": {
|
|
"patterns": [
|
|
{
|
|
"name": "keyword.control.evescript",
|
|
"match": "\\b(if|else|switch|case|default|while|do|for|foreach|break|continue|return|try|catch|throw|yield|resume|await)\\b"
|
|
},
|
|
{
|
|
"name": "storage.type.evescript",
|
|
"match": "\\b(local|const|enum|class|function|constructor|static|persist|async|export|import)\\b"
|
|
},
|
|
{
|
|
"name": "keyword.other.evescript",
|
|
"match": "\\b(from|as|extends|in|typeof|instanceof|clone|delete)\\b"
|
|
}
|
|
]
|
|
},
|
|
"numbers": {
|
|
"name": "constant.numeric.evescript",
|
|
"match": "\\b0x[0-9A-Fa-f]+\\b|\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(?:ms|s|deg|rad)?\\b"
|
|
},
|
|
"class-decl": {
|
|
"match": "\\b(class)\\s+([A-Za-z_][A-Za-z0-9_]*)",
|
|
"captures": {
|
|
"1": { "name": "storage.type.evescript" },
|
|
"2": { "name": "entity.name.type.class.evescript" }
|
|
}
|
|
},
|
|
"function-decl": {
|
|
"match": "\\b(function|async)\\s+([A-Za-z_][A-Za-z0-9_]*)",
|
|
"captures": {
|
|
"1": { "name": "storage.type.evescript" },
|
|
"2": { "name": "entity.name.function.evescript" }
|
|
}
|
|
}
|
|
}
|
|
}
|