119 lines
3.8 KiB
JSON
Executable File
119 lines
3.8 KiB
JSON
Executable File
{
|
|
"displayName": "D",
|
|
"name": "d",
|
|
"mimeTypes": ["text/d"],
|
|
"fileExtensions": ["d","di"],
|
|
|
|
"lineComment": "//",
|
|
"blockCommentStart": "/*",
|
|
"blockCommentEnd": "*/",
|
|
|
|
"keywords": [
|
|
"alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case",
|
|
"catch", "char", "wchar", "dchar", "class", "shared", "const", "immutable", "cast",
|
|
"continue", "default", "do", "double", "else", "foreach",
|
|
"enum", "export", "extern", "false", "float", "for", "goto", "if", "pragma",
|
|
"int", "long", "import", "module", "new", "nothrow", "not", "null", "private", "protected", "public", "register", "reinterpret_cast",
|
|
"return", "short", "static", "assert", "struct",
|
|
"switch", "template", "this", "__gshared", "true", "try", "alias", "typeof", "union", "virtual", "void", "volatile", "while", "final", "uint", "ulong", "ushort", "ubyte", "byte", "cent", "is", "string", "dstring", "wstring"
|
|
],
|
|
|
|
"extraKeywords": [],
|
|
|
|
"typeKeywords": [
|
|
"bool", "double", "cent", "byte", "int", "short", "char", "void", "long", "float", "ulong", "ushort", "uint", "ubyte", "byte", "wchar", "dchar", "string", "dstring", "wstring"
|
|
],
|
|
|
|
"extraTypeKeywords": [],
|
|
|
|
"directives": [
|
|
"include","if","endif","ifdef","define","line","warning","error"
|
|
],
|
|
|
|
"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" ]
|
|
]
|
|
}
|
|
} |