7 lines
6.6 KiB
JavaScript
7 lines
6.6 KiB
JavaScript
const lang = Object.freeze({ "displayName": "GDShader", "fileTypes": ["gdshader"], "name": "gdshader", "patterns": [{ "include": "#any" }], "repository": { "any": { "patterns": [{ "include": "#comment" }, { "include": "#enclosed" }, { "include": "#classifier" }, { "include": "#definition" }, { "include": "#keyword" }, { "include": "#element" }, { "include": "#separator" }, { "include": "#operator" }] }, "arraySize": { "begin": "\\[", "captures": { "0": { "name": "punctuation.bracket.gdshader" } }, "end": "\\]", "name": "meta.array-size.gdshader", "patterns": [{ "include": "#comment" }, { "include": "#keyword" }, { "include": "#element" }, { "include": "#separator" }] }, "classifier": { "begin": "(?=\\b(?:shader_type|render_mode)\\b)", "end": "(?<=;)", "name": "meta.classifier.gdshader", "patterns": [{ "include": "#comment" }, { "include": "#keyword" }, { "include": "#identifierClassification" }, { "include": "#separator" }] }, "classifierKeyword": { "match": "\\b(?:shader_type|render_mode)\\b", "name": "keyword.language.classifier.gdshader" }, "comment": { "patterns": [{ "include": "#commentLine" }, { "include": "#commentBlock" }] }, "commentBlock": { "begin": "/\\*", "end": "\\*/", "name": "comment.block.gdshader" }, "commentLine": { "begin": "//", "end": "$", "name": "comment.line.double-slash.gdshader" }, "constantFloat": { "match": "\\b(?:E|PI|TAU)\\b", "name": "constant.language.float.gdshader" }, "constructor": { "match": "\\b[a-zA-Z_]\\w*(?=\\s*\\[\\s*\\w*\\s*\\]\\s*[(])|\\b[A-Z]\\w*(?=\\s*[(])", "name": "entity.name.type.constructor.gdshader" }, "controlKeyword": { "match": "\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\b", "name": "keyword.control.gdshader" }, "definition": { "patterns": [{ "include": "#structDefinition" }] }, "element": { "patterns": [{ "include": "#literalFloat" }, { "include": "#literalInt" }, { "include": "#literalBool" }, { "include": "#identifierType" }, { "include": "#constructor" }, { "include": "#processorFunction" }, { "include": "#identifierFunction" }, { "include": "#swizzling" }, { "include": "#identifierField" }, { "include": "#constantFloat" }, { "include": "#languageVariable" }, { "include": "#identifierVariable" }] }, "enclosed": { "begin": "\\(", "captures": { "0": { "name": "punctuation.parenthesis.gdshader" } }, "end": "\\)", "name": "meta.parenthesis.gdshader", "patterns": [{ "include": "#any" }] }, "fieldDefinition": { "begin": "\\b[a-zA-Z_]\\w*\\b", "beginCaptures": { "0": { "patterns": [{ "include": "#typeKeyword" }, { "match": ".+", "name": "entity.name.type.gdshader" }] } }, "end": "(?<=;)", "name": "meta.definition.field.gdshader", "patterns": [{ "include": "#comment" }, { "include": "#keyword" }, { "include": "#arraySize" }, { "include": "#fieldName" }, { "include": "#any" }] }, "fieldName": { "match": "\\b[a-zA-Z_]\\w*\\b", "name": "entity.name.variable.field.gdshader" }, "hintKeyword": { "match": "\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\b", "name": "support.type.annotation.gdshader" }, "identifierClassification": { "match": "\\b[a-z_]+\\b", "name": "entity.other.inherited-class.gdshader" }, "identifierField": { "captures": { "1": { "name": "punctuation.accessor.gdshader" }, "2": { "name": "entity.name.variable.field.gdshader" } }, "match": "([.])\\s*([a-zA-Z_]\\w*)\\b(?!\\s*\\()" }, "identifierFunction": { "match": "\\b[a-zA-Z_]\\w*(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])", "name": "entity.name.function.gdshader" }, "identifierType": { "match": "\\b[a-zA-Z_]\\w*(?=(?:\\s*\\[\\s*\\w*\\s*\\])?\\s+[a-zA-Z_]\\w*\\b)", "name": "entity.name.type.gdshader" }, "identifierVariable": { "match": "\\b[a-zA-Z_]\\w*\\b", "name": "variable.name.gdshader" }, "keyword": { "patterns": [{ "include": "#classifierKeyword" }, { "include": "#structKeyword" }, { "include": "#controlKeyword" }, { "include": "#modifierKeyword" }, { "include": "#precisionKeyword" }, { "include": "#typeKeyword" }, { "include": "#hintKeyword" }] }, "languageVariable": { "match": "\\b(?:[A-Z][A-Z_0-9]*)\\b", "name": "variable.language.gdshader" }, "literalBool": { "match": "\\b(?:false|true)\\b", "name": "constant.language.boolean.gdshader" }, "literalFloat": { "match": "\\b(?:\\d+[eE][-+]?\\d+|(?:\\d*[.]\\d+|\\d+[.])(?:[eE][-+]?\\d+)?)[fF]?", "name": "constant.numeric.float.gdshader" }, "literalInt": { "match": "\\b(?:0[xX][0-9A-Fa-f]+|\\d+[uU]?)\\b", "name": "constant.numeric.integer.gdshader" }, "modifierKeyword": { "match": "\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\b", "name": "storage.modifier.gdshader" }, "operator": { "match": "\\<\\<\\=?|\\>\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]", "name": "keyword.operator.gdshader" }, "precisionKeyword": { "match": "\\b(?:low|medium|high)p\\b", "name": "storage.type.built-in.primitive.precision.gdshader" }, "processorFunction": { "match": "\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])", "name": "support.function.gdshader" }, "separator": { "patterns": [{ "match": "[.]", "name": "punctuation.accessor.gdshader" }, { "include": "#separatorComma" }, { "match": "[;]", "name": "punctuation.terminator.statement.gdshader" }, { "match": "[:]", "name": "keyword.operator.type.annotation.gdshader" }] }, "separatorComma": { "match": "[,]", "name": "punctuation.separator.comma.gdshader" }, "structDefinition": { "begin": "(?=\\b(?:struct)\\b)", "end": "(?<=;)", "patterns": [{ "include": "#comment" }, { "include": "#keyword" }, { "include": "#structName" }, { "include": "#structDefinitionBlock" }, { "include": "#separator" }] }, "structDefinitionBlock": { "begin": "\\{", "captures": { "0": { "name": "punctuation.definition.block.struct.gdshader" } }, "end": "\\}", "name": "meta.definition.block.struct.gdshader", "patterns": [{ "include": "#comment" }, { "include": "#precisionKeyword" }, { "include": "#fieldDefinition" }, { "include": "#keyword" }, { "include": "#any" }] }, "structKeyword": { "match": "\\b(?:struct)\\b", "name": "keyword.other.struct.gdshader" }, "structName": { "match": "\\b[a-zA-Z_]\\w*\\b", "name": "entity.name.type.struct.gdshader" }, "swizzling": { "captures": { "1": { "name": "punctuation.accessor.gdshader" }, "2": { "name": "variable.other.property.gdshader" } }, "match": "([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b" }, "typeKeyword": { "match": "\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b", "name": "support.type.gdshader" } }, "scopeName": "source.gdshader" });
|
|
var gdshader = [
|
|
lang
|
|
];
|
|
|
|
export { gdshader as default };
|