mirror of https://github.com/helix-editor/helix
233 lines
3.4 KiB
Scheme
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)
|