2 lines
6.3 KiB
JavaScript
Raw Normal View History

2025-09-05 14:59:21 +08:00
const e=Object.freeze(JSON.parse('{"displayName":"WGSL","name":"wgsl","patterns":[{"include":"#line_comments"},{"include":"#block_comments"},{"include":"#keywords"},{"include":"#attributes"},{"include":"#functions"},{"include":"#function_calls"},{"include":"#constants"},{"include":"#types"},{"include":"#variables"},{"include":"#punctuation"}],"repository":{"attributes":{"patterns":[{"captures":{"1":{"name":"keyword.operator.attribute.at"},"2":{"name":"entity.name.attribute.wgsl"}},"comment":"attribute declaration","match":"(@)([A-Za-z_]+)","name":"meta.attribute.wgsl"}]},"block_comments":{"patterns":[{"comment":"empty block comments","match":"/\\\\*\\\\*/","name":"comment.block.wgsl"},{"begin":"/\\\\*\\\\*","comment":"block documentation comments","end":"\\\\*/","name":"comment.block.documentation.wgsl","patterns":[{"include":"#block_comments"}]},{"begin":"/\\\\*(?!\\\\*)","comment":"block comments","end":"\\\\*/","name":"comment.block.wgsl","patterns":[{"include":"#block_comments"}]}]},"constants":{"patterns":[{"comment":"decimal float literal","match":"(-?\\\\b\\\\d\\\\d*\\\\.\\\\d\\\\d*)([eE][+-]?\\\\d+)?\\\\b","name":"constant.numeric.float.wgsl"},{"comment":"int literal","match":"-?\\\\b0x[0-9a-fA-F]+\\\\b|\\\\b0\\\\b|-?\\\\b[1-9]\\\\d*\\\\b","name":"constant.numeric.decimal.wgsl"},{"comment":"uint literal","match":"\\\\b0x[0-9a-fA-F]+u\\\\b|\\\\b0u\\\\b|\\\\b[1-9]\\\\d*u\\\\b","name":"constant.numeric.decimal.wgsl"},{"comment":"boolean constant","match":"\\\\b(true|false)\\\\b","name":"constant.language.boolean.wgsl"}]},"function_calls":{"patterns":[{"begin":"([A-Za-z0-9_]+)(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.wgsl"},"2":{"name":"punctuation.brackets.round.wgsl"}},"comment":"function/method calls","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.brackets.round.wgsl"}},"name":"meta.function.call.wgsl","patterns":[{"include":"#line_comments"},{"include":"#block_comments"},{"include":"#keywords"},{"include":"#attributes"},{"include":"#function_calls"},{"include":"#constants"},{"include":"#types"},{"include":"#variables"},{"include":"#punctuation"}]}]},"functions":{"patterns":[{"begin":"\\\\b(fn)\\\\s+([A-Za-z0-9_]+)((\\\\()|(<))","beginCaptures":{"1":{"name":"keyword.other.fn.wgsl"},"2":{"name":"entity.name.function.wgsl"},"4":{"name":"punctuation.brackets.round.wgsl"}},"comment":"function definition","end":"\\\\{","endCaptures":{"0":{"name":"punctuation.brackets.curly.wgsl"}},"name":"meta.function.definition.wgsl","patterns":[{"include":"#line_comments"},{"include":"#block_comments"},{"include":"#keywords"},{"include":"#attributes"},{"include":"#function_calls"},{"include":"#constants"},{"include":"#types"},{"include":"#variables"},{"include":"#punctuation"}]}]},"keywords":{"patterns":[{"comment":"other keywords","match":"\\\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\\\b","name":"keyword.control.wgsl"},{"comment":"reserved keywords","match":"\\\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\\\b","name":"keyword.control.wgsl"},{"comment":"storage keywords","match":"\\\\b(let|var)\\\\b","name":"keyword.other.wgsl storage.type.wgsl"},{"comment":"type keyword","match":"\\\\b(type)\\\\b","name":"keyword.declaration.type.wgsl storage.type.wgsl"},{"comment":"enum keyword","match":"\\\\b(enum)\\\\b","name":"keyword.declaration.enum.wgsl storage.type.wgsl"},{"comment":"struct keyword","match":"\\\\b(struct)\\\\b","name":"keyword.declaration.struct.wgsl storage.type.wgsl"},{"comment":"fn","match":"\\\\bfn\\\\b","name":"keyword.other.fn.wgsl"},{"comment":"logical operators","match":"(\\\\^|\\\\||\\\\|\\\\||&&|<<|>>|!)(?!=)","name":"keyword.operator.logical.wgsl"},{"comment":"logical AND, borrow references","match":"&(?![&=])","name":"keyword.operator.borrow.and.wgsl"},{"comment":"assignment operators","match":"(\\\\+=|-=|\\\\*=|/=|%=|\\\\^=|&=|\\\\|=|<<=|>>=)","name":"keyword.operator.assignment.wgsl"},{"comment":"