111 lines
2.9 KiB
JSON
111 lines
2.9 KiB
JSON
|
{
|
||
|
"displayName": "Golang",
|
||
|
"name": "go",
|
||
|
"mimeTypes": ["text/go"],
|
||
|
"fileExtensions": ["go"],
|
||
|
|
||
|
"lineComment": "//",
|
||
|
"blockCommentStart": "/*",
|
||
|
"blockCommentEnd": "*/",
|
||
|
|
||
|
"keywords": [
|
||
|
"func", "var", "make", "go", "for", "if", "int", "uint"
|
||
|
],
|
||
|
|
||
|
"extraKeywords": [],
|
||
|
|
||
|
"typeKeywords": [
|
||
|
"int", "uint"
|
||
|
],
|
||
|
|
||
|
"extraTypeKeywords": [],
|
||
|
|
||
|
"directives": [],
|
||
|
|
||
|
"operators": [
|
||
|
"=", ">", "<", "!", "~", "?", ":",
|
||
|
"==", "<=", ">=", "!=", "&&", "||", "++", "--",
|
||
|
"+", "-", "*", "/", "&", "|", "^", "%", "<<",
|
||
|
">>", ">>>", "+=", "-=", "*=", "/=", "&=", "|=",
|
||
|
"^=", "%=", "<<=", ">>=", ">>>="
|
||
|
],
|
||
|
|
||
|
"extraOperators": [],
|
||
|
|
||
|
"symbols": "[=><!~?:&|+\\-*\\/\\^%]+",
|
||
|
"escapes": "\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
|
||
|
|
||
|
|
||
|
"tokenizer": {
|
||
|
"root": [
|
||
|
|
||
|
["__\\w+", "identifier.predefined"],
|
||
|
["\\w+::(?=\\w)", "namespace" ],
|
||
|
["(namespace)(\\s*)((?:\\w+::)*\\w+)", ["keyword","white","namespace"] ],
|
||
|
|
||
|
["[a-z_$][\\w]*", { "cases": {
|
||
|
"@typeKeywords": "keyword.type",
|
||
|
"@extraTypeKeywords": "keyword.type.extra",
|
||
|
"@keywords": "keyword",
|
||
|
"@extraKeywords": "keyword.extra",
|
||
|
"@default": "identifier" } }],
|
||
|
["(\\.|\\->)([A-Z][\\w]*)", ["keyword", "identifier"] ],
|
||
|
["[A-Z][\\w]*(?!\\s*[\\w\\(])", "type.identifier" ],
|
||
|
["[A-Z][A-Z0-9_]*(?![\\w\\(])", "type.identifier" ],
|
||
|
|
||
|
|
||
|
["^(\\s*#)(\\w+)(.*)", { "cases": {
|
||
|
"$2@directives": ["namespace","namespace","string"],
|
||
|
"@default": ["meta","meta","string"]
|
||
|
}}],
|
||
|
|
||
|
{ "include": "@whitespace" },
|
||
|
|
||
|
["[{}()\\[\\]]", "@brackets"],
|
||
|
["[<>](?!@symbols)", "@brackets"],
|
||
|
["@symbols", { "cases": {
|
||
|
"@operators": "operator",
|
||
|
"@extraOperators": "operator.extra",
|
||
|
"@default" : "" } } ],
|
||
|
|
||
|
["\\d*\\.\\d+([eE][\\-+]?\\d+)?[fFdD]?", "number.float"],
|
||
|
["0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?", "number.hex"],
|
||
|
["0[0-7_]*[0-7][Ll]?", "number.octal"],
|
||
|
["0[bB][0-1_]*[0-1][Ll]?", "number.binary"],
|
||
|
["\\d+[lL]?", "number"],
|
||
|
|
||
|
|
||
|
["[;,.]", "delimiter"],
|
||
|
|
||
|
|
||
|
["[lL]\"([^\"\\\\]|\\\\.)*$", "string.invalid" ],
|
||
|
["\"", "string", "@string" ],
|
||
|
|
||
|
|
||
|
["'[^\\\\']'", "string"],
|
||
|
["(')(@escapes)(')", ["string","string.escape","string"]],
|
||
|
["'", "string.invalid"]
|
||
|
],
|
||
|
|
||
|
"whitespace": [
|
||
|
["[ \\t\\r\\n]+", "white"],
|
||
|
["\\/\\*", "comment", "@comment" ],
|
||
|
["\\/\\/.*$", "comment"]
|
||
|
],
|
||
|
|
||
|
"comment": [
|
||
|
["[^\\/*]+", "comment" ],
|
||
|
|
||
|
["\\/\\*", "comment.invalid" ],
|
||
|
["\\*/", "comment", "@pop" ],
|
||
|
["[\\/*]", "comment" ]
|
||
|
],
|
||
|
|
||
|
"string": [
|
||
|
["[^\\\\\"]+", "string"],
|
||
|
["@escapes", "string.escape"],
|
||
|
["\\\\.", "string.escape.invalid"],
|
||
|
["\"", "string", "@pop" ]
|
||
|
]
|
||
|
}
|
||
|
}
|