| { |
| "scopeName": "source.spirv", |
| "name": "SPIR-V", |
| "comment": "Generated by {{GenerateArguments}}. Do not modify this file directly.", |
| "patterns": [ |
| {{range $o := .All.OperandKinds}}{{if len $o.Enumerants}} { "include": "#{{$o.Category}}_{{$o.Kind}}" }, |
| {{end}}{{end}} { "include": "#opcode" }, |
| { "include": "#extopcode" }, |
| { "include": "#identifier" }, |
| { "include": "#number" }, |
| { "include": "#string" }, |
| { "include": "#comment" }, |
| { "include": "#operator" } |
| ], |
| "repository": { {{range $o := .All.OperandKinds}}{{if len $o.Enumerants}} |
| "{{$o.Category}}_{{$o.Kind}}": { |
| "match": "\\b({{OperandKindsMatch $o}})\\b", |
| "name": "keyword.spirv" |
| },{{end}}{{end}} |
| "opcode": { |
| "match": "(Op[a-zA-Z]+)", |
| "name": "entity.name.function.spirv" |
| }, |
| "extopcode": { |
| "match": "({{AllExtOpcodes}})", |
| "name": "entity.name.function.ext" |
| }, |
| "identifier": { |
| "match": "%[a-zA-Z0-9_]+", |
| "name": "variable.spirv" |
| }, |
| "number": { |
| "match": "\\b[0-9]+.?[0-9]*\\b", |
| "name": "constant.numeric.spirv" |
| }, |
| "comment": { |
| "match": ";[^\n]*", |
| "name": "comment.line.spirv" |
| }, |
| "operator": { |
| "match": "=", |
| "name": "keyword.operator.spirv" |
| }, |
| "string": { |
| "begin": "\"", |
| "beginCaptures": { |
| "0": { |
| "name": "punctuation.definition.string.begin.spirv" |
| } |
| }, |
| "end": "\"", |
| "endCaptures": { |
| "0": { |
| "name": "punctuation.definition.string.end.spirv" |
| } |
| }, |
| "name": "string.quoted.double.spirv", |
| "patterns": [ { "include": "#string_escaped_char" } ] |
| }, |
| "string_escaped_char": { |
| "patterns": [ |
| { |
| "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})", |
| "name": "constant.character.escape.spirv" |
| }, { |
| "match": "\\\\[^0-7xuUabfnrtv\\'\"]", |
| "name": "invalid.illegal.unknown-escape.spirv" |
| } |
| ] |
| } |
| } |
| } |