helix/runtime/queries/wgsl/highlights.scm

233 lines
3.4 KiB
Scheme

(int_literal) @constant.numeric.integer
(float_literal) @constant.numeric.float
(bool_literal) @constant.builtin.boolean
[
"bitcast"
"discard"
"enable"
"fallthrough"
] @keyword
[
"let"
"override"
"struct"
"type"
"var"
(texel_format)
] @keyword.storage.type
[
(access_mode)
(address_space)
] @keyword.storage.modifier
"fn" @keyword.function
"return" @keyword.control.return
["," "." ":" ";"] @punctuation.delimiter
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
[
"break"
"continue"
"continuing"
] @keyword.control
[
"loop"
"for"
"while"
] @keyword.control.repeat
[
"if"
"else"
"switch"
"case"
"default"
] @keyword.control.conditional
[
"!"
"!="
"%"
"%="
"&"
"&&"
"&="
"*"
"*="
"+"
"++"
"+="
"-"
"--"
"-="
"->"
"/"
"/="
"<"
"<<"
"<="
"="
"=="
">"
">="
">>"
"@"
"^"
"^="
"|"
"|="
"||"
"~"
] @operator
(identifier) @variable
(function_declaration
(identifier) @function)
(parameter
(variable_identifier_declaration
(identifier) @variable.parameter))
(struct_declaration
(identifier) @type)
(struct_declaration
(struct_member
(variable_identifier_declaration
(identifier) @variable.other.member)))
(type_constructor_or_function_call_expression
(type_declaration (identifier) @function))
(type_declaration _ @type)
(attribute
(identifier) @attribute)
(comment) @comment
; built-in wgsl functions: https://webgpufundamentals.org/webgpu/lessons/webgpu-wgsl-function-reference.html
(
(identifier) @function.builtin
(#any-of? @function.builtin
"abs"
"abs"
"acos"
"acosh"
"all"
"any"
"arrayLength"
"asin"
"asinh"
"atan"
"atan2"
"atanh"
"atomicAdd"
"atomicLoad"
"atomicStore"
"bitcast"
"ceil"
"clamp"
"cos"
"cosh"
"countLeadingZeros"
"countOneBits"
"countTrailingZeros"
"cross"
"degrees"
"determinant"
"distance"
"dot"
"dpdx"
"dpdxCoarse"
"dpdxFine"
"dpdy"
"dpdyCoarse"
"dpdyFine"
"exp"
"exp2"
"extractBits"
"faceForward"
"firstLeadingBit"
"firstTrailingBit"
"floor"
"fma"
"fract"
"frexp"
"fwidth"
"fwidthCoarse"
"fwidthFine"
"gather_depth_compare"
"gather_x_components"
"insertBits"
"inverseSqrt"
"ldexp"
"length"
"log"
"log2"
"max"
"min"
"mix"
"modf"
"normalize"
"pack2x16float"
"pack2x16snorm"
"pack2x16unorm"
"pack4x8snorm"
"pack4x8unorm"
"pow"
"quantizeToF16"
"radians"
"reflect"
"refract"
"reverseBits"
"round"
"saturate"
"select"
"sign"
"sin"
"sinh"
"smoothstep"
"sqrt"
"step"
"storageBarrier"
"tan"
"tanh"
"textureDimensions"
"textureGather"
"textureGatherCompare"
"textureLoad"
"textureNumLayers"
"textureNumLevels"
"textureNumSamples"
"textureSample"
"textureSampleBaseClampToEdge"
"textureSampleBias"
"textureSampleCompare"
"textureSampleCompareLevel"
"textureSampleGrad"
"textureSampleLevel"
"textureStore"
"transpose"
"trunc"
"unpack2x16float"
"unpack2x16snorm"
"unpack2x16unorm"
"unpack4x8snorm"
"unpack4x8unorm"
"workgroupBarrier"
"workgroupUniformLoad"
)
)
(type_declaration ["<" ">"] @punctuation.bracket)
(variable_qualifier ["<" ">"] @punctuation.bracket)