summaryrefslogtreecommitdiff
path: root/syntaxes/wgsl.sublime-syntax
diff options
context:
space:
mode:
authorSilas Bartha <silas@soaos.dev>2025-05-01 20:11:49 -0400
committerSilas Bartha <silas@soaos.dev>2025-05-01 20:11:49 -0400
commit31a1cf1ad7ab15ed7b4c7d82489e26994a4022a8 (patch)
treeed6a6e3cd8c07eec90babdd8a5a9838b11af0e10 /syntaxes/wgsl.sublime-syntax
parentd9fcb20d9db83fd476a0d3681bd9067be30b7e7c (diff)
switch to raw html site
Diffstat (limited to 'syntaxes/wgsl.sublime-syntax')
-rw-r--r--syntaxes/wgsl.sublime-syntax215
1 files changed, 0 insertions, 215 deletions
diff --git a/syntaxes/wgsl.sublime-syntax b/syntaxes/wgsl.sublime-syntax
deleted file mode 100644
index 2b81f3e..0000000
--- a/syntaxes/wgsl.sublime-syntax
+++ /dev/null
@@ -1,215 +0,0 @@
-%YAML 1.2
----
-# http://www.sublimetext.com/docs/syntax.html
-name: WGSL
-file_extensions: [wgsl]
-scope: source.wgsl
-contexts:
- main:
- - include: line_comments
- - include: block_comments
- - include: constants
- - include: keywords
- - include: attributes
- - include: functions
- - include: function_calls
- - include: types
- - include: variables
- - include: punctuation
- attributes:
- # attribute declaration
- - match: '(@)([A-Za-z_]+)'
- scope: meta.attribute.wgsl
- captures:
- 1: keyword.operator.attribute.at
- 2: entity.name.attribute.wgsl
- block_comments:
- # empty block comments
- - match: /\*\*/
- scope: comment.block.wgsl
- # block documentation comments
- - match: /\*\*
- push:
- - meta_scope: comment.block.documentation.wgsl
- - match: \*/
- pop: true
- - include: block_comments
- # block comments
- - match: /\*(?!\*)
- push:
- - meta_scope: comment.block.wgsl
- - match: \*/
- pop: true
- - include: block_comments
- constants:
- # boolean constant
- - match: \b(true|false)\b
- scope: constant.language.boolean.wgsl
- # decimal float literal
- - match: '(\b(0|[1-9][0-9]*)[fh]\b|([0-9]*\.[0-9]+|[0-9]+\.[0-9]*)([eE][+-]?[0-9]+)?[fh]?|[0-9]+[eE][+-]?[0-9]+[fh]?)'
- scope: constant.numeric.float.wgsl
- # decimal int literal
- - match: '\b(0|[1-9][0-9]*)[iu]?\b'
- scope: constant.numeric.decimal.wgsl
- # hexadecimal int literal
- - match: '\b0[xX][0-9a-fA-F]+[iu]?\b'
- scope: constant.numeric.decimal.wgsl
- function_calls:
- # function/method calls
- - match: '([A-Za-z0-9_]+)(\()'
- captures:
- 1: entity.name.function.wgsl
- 2: punctuation.brackets.round.wgsl
- push:
- - meta_scope: meta.function.call.wgsl
- - match: \)
- captures:
- 0: punctuation.brackets.round.wgsl
- pop: true
- - include: line_comments
- - include: block_comments
- - include: constants
- - include: keywords
- - include: attributes
- - include: function_calls
- - include: types
- - include: variables
- - include: punctuation
- functions:
- # function definition
- - match: '\b(fn)\s+([A-Za-z0-9_]+)((\()|(<))'
- captures:
- 1: keyword.other.fn.wgsl
- 2: entity.name.function.wgsl
- 4: punctuation.brackets.round.wgsl
- push:
- - meta_scope: meta.function.definition.wgsl
- - match: '\{'
- captures:
- 0: punctuation.brackets.curly.wgsl
- pop: true
- - include: line_comments
- - include: block_comments
- - include: constants
- - include: keywords
- - include: attributes
- - include: function_calls
- - include: types
- - include: variables
- - include: punctuation
- keywords:
- # other keywords
- - match: \b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|override|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\b
- scope: keyword.control.wgsl
- # reserved keywords
- - match: \b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\b
- scope: keyword.control.wgsl
- # storage keywords
- - match: \b(let|var)\b
- scope: keyword.other.wgsl storage.type.wgsl
- # type keyword
- - match: \b(type)\b
- scope: keyword.declaration.type.wgsl storage.type.wgsl
- # enum keyword
- - match: \b(enum)\b
- scope: keyword.declaration.enum.wgsl storage.type.wgsl
- # struct keyword
- - match: \b(struct)\b
- scope: keyword.declaration.struct.wgsl storage.type.wgsl
- # fn
- - match: \bfn\b
- scope: keyword.other.fn.wgsl
- # logical operators
- - match: (\^|\||\|\||&&|<<|>>|!)(?!=)
- scope: keyword.operator.logical.wgsl
- # logical AND, borrow references
- - match: '&(?![&=])'
- scope: keyword.operator.borrow.and.wgsl
- # assignment operators
- - match: (\+=|-=|\*=|/=|%=|\^=|&=|\|=|<<=|>>=)
- scope: keyword.operator.assignment.wgsl
- # single equal
- - match: '(?<![<>])=(?!=|>)'
- scope: keyword.operator.assignment.equal.wgsl
- # comparison operators
- - match: (=(=)?(?!>)|!=|<=|(?<!=)>=)
- scope: keyword.operator.comparison.wgsl
- # math operators
- - match: '(([+%]|(\*(?!\w)))(?!=))|(-(?!>))|(/(?!/))'
- scope: keyword.operator.math.wgsl
- # dot access
- - match: \.(?!\.)
- scope: keyword.operator.access.dot.wgsl
- # dashrocket, skinny arrow
- - match: '->'
- scope: keyword.operator.arrow.skinny.wgsl
- line_comments:
- # single line comment
- - match: \s*//.*
- scope: comment.line.double-slash.wgsl
- punctuation:
- # comma
- - match: ','
- scope: punctuation.comma.wgsl
- # curly braces
- - match: '[{}]'
- scope: punctuation.brackets.curly.wgsl
- # parentheses, round brackets
- - match: '[()]'
- scope: punctuation.brackets.round.wgsl
- # semicolon
- - match: ;
- scope: punctuation.semi.wgsl
- # square brackets
- - match: '[\[\]]'
- scope: punctuation.brackets.square.wgsl
- # angle brackets
- - match: '(?<![=-])[<>]'
- scope: punctuation.brackets.angle.wgsl
- types:
- # scalar types
- - match: \b(bool|i32|u32|f16|f32)\b
- scope: storage.type.wgsl
- # reserved scalar types
- - match: \b(i64|u64|f64)\b
- scope: storage.type.wgsl
- # vector type aliasses
- - match: \b(vec2i|vec3i|vec4i|vec2u|vec3u|vec4u|vec2f|vec3f|vec4f|vec2h|vec3h|vec4h)\b
- scope: storage.type.wgsl
- # matrix type aliasses
- - match: \b(mat2x2f|mat2x3f|mat2x4f|mat3x2f|mat3x3f|mat3x4f|mat4x2f|mat4x3f|mat4x4f|mat2x2h|mat2x3h|mat2x4h|mat3x2h|mat3x3h|mat3x4h|mat4x2h|mat4x3h|mat4x4h)\b
- scope: storage.type.wgsl
- # vector/matrix types
- - match: '\b(vec[2-4]|mat[2-4]x[2-4])\b'
- scope: storage.type.wgsl
- # atomic types
- - match: \b(atomic)\b
- scope: storage.type.wgsl
- # array types
- - match: \b(array)\b
- scope: storage.type.wgsl
- # sampled texture types
- - match: \b(texture_1d|texture_2d|texture_2d_array|texture_3d|texture_cube|texture_cube_array)\b
- scope: storage.type.wgsl
- # multisampled texture types
- - match: \b(texture_multisampled_2d|texture_depth_multisampled_2d)\b
- scope: storage.type.wgsl
- # external sampled texture types
- - match: \b(texture_external)\b
- scope: storage.type.wgsl
- # storage texture types
- - match: \b(texture_storage_1d|texture_storage_2d|texture_storage_2d_array|texture_storage_3d)\b
- scope: storage.type.wgsl
- # depth texture types
- - match: \b(texture_depth_2d|texture_depth_2d_array|texture_depth_cube|texture_depth_cube_array)\b
- scope: storage.type.wgsl
- # sampler type
- - match: \b(sampler|sampler_comparison)\b
- scope: storage.type.wgsl
- # custom type
- - match: '\b([A-Z][A-Za-z0-9]*)\b'
- scope: entity.name.type.wgsl
- variables:
- # variables
- - match: '\b(?<!(?<!\.)\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\b'
- scope: variable.other.wgsl