Basic syntax highlighting

This commit is contained in:
numzero 2024-09-27 23:53:48 +03:00
commit a4fb988ad9

179
wgsl.xml Normal file
View File

@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE language [
]>
<language name="WGSL"
version="1"
kateversion="6.0"
section="3D"
extensions="*.wgsl"
mimetype="text/wgsl"
license="LGPLv2+">
<highlighting>
<list name="keyword">
<item>alias</item>
<item>break</item>
<item>case</item>
<item>const</item>
<item>const_assert</item>
<item>continue</item>
<item>continuing</item>
<item>default</item>
<item>diagnostic</item>
<item>discard</item>
<item>else</item>
<item>enable</item>
<item>false</item>
<item>fn</item>
<item>for</item>
<item>if</item>
<item>let</item>
<item>loop</item>
<item>override</item>
<item>requires</item>
<item>return</item>
<item>struct</item>
<item>switch</item>
<item>true</item>
<item>var</item>
<item>while</item>
</list>
<list name="type">
<item>bool</item>
<item>f16</item>
<item>f32</item>
<item>i32</item>
<item>u32</item>
<item>vec2</item>
<item>vec3</item>
<item>vec4</item>
<item>mat2x2</item>
<item>mat2x3</item>
<item>mat2x4</item>
<item>mat3x2</item>
<item>mat3x3</item>
<item>mat3x4</item>
<item>mat4x2</item>
<item>mat4x3</item>
<item>mat4x4</item>
<item>array</item>
</list>
<list name="attribute">
<item>@align</item>
<item>@binding</item>
<item>@builtin</item>
<item>@compute</item>
<item>@const</item>
<item>@diagnostic</item>
<item>@fragment</item>
<item>@group</item>
<item>@id</item>
<item>@interpolate</item>
<item>@invariant</item>
<item>@location</item>
<item>@blend_src</item>
<item>@must_use</item>
<item>@size</item>
<item>@vertex</item>
<item>@workgroup_size</item>
</list>
<list name="attribute">
<item>@align</item>
<item>@binding</item>
<item>@builtin</item>
<item>@compute</item>
<item>@const</item>
<item>@diagnostic</item>
<item>@fragment</item>
<item>@group</item>
<item>@id</item>
<item>@interpolate</item>
<item>@invariant</item>
<item>@location</item>
<item>@blend_src</item>
<item>@must_use</item>
<item>@size</item>
<item>@vertex</item>
<item>@workgroup_size</item>
</list>
<list name="builtin_value_name">
<item>vertex_index</item>
<item>instance_index</item>
<item>position</item>
<item>front_facing</item>
<item>frag_depth</item>
<item>sample_index</item>
<item>sample_mask</item>
<item>local_invocation_id</item>
<item>local_invocation_index</item>
<item>global_invocation_id</item>
<item>workgroup_id</item>
<item>num_workgroups</item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#pop" name="Normal">
<keyword attribute="Keyword" context="#stay" String="keyword" />
<keyword attribute="BuiltIn" context="#stay" String="type" />
<DetectChar attribute="Attribute" context="Attribute" char="@" />
<RegExpr attribute="Hexadecimal Float" context="#stay" String="\b0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?" />
<RegExpr attribute="Hexadecimal Float" context="#stay" String="\b0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?" />
<RegExpr attribute="Hexadecimal Float" context="#stay" String="\b0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?" />
<RegExpr attribute="Hexadecimal Integer" context="#stay" String="\b0[xX][0-9a-fA-F]+[iu]?" />
<RegExpr attribute="Decimal Float" context="#stay" String="\b0[fh]" />
<RegExpr attribute="Decimal Float" context="#stay" String="\b[1-9][0-9]*[fh]" />
<RegExpr attribute="Decimal Float" context="#stay" String="\b[0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fh]?" />
<RegExpr attribute="Decimal Float" context="#stay" String="\.[0-9]+([eE][+-]?[0-9]+)?[fh]?" />
<RegExpr attribute="Decimal Float" context="#stay" String="\b[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?" />
<RegExpr attribute="Decimal Float" context="#stay" String="\b[0-9]+[eE][+-]?[0-9]+[fh]?" />
<RegExpr attribute="Decimal Integer" context="#stay" String="\b0[iu]?" />
<RegExpr attribute="Decimal Integer" context="#stay" String="\b[1-9][0-9]*[iu]?" />
<Detect2Chars attribute="Comment" context="LineComment" char="/" char1="/" />
<Detect2Chars attribute="Comment" context="MultilineComment" char="/" char1="*" beginRegion="CommentFolding" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="LineComment">
<IncludeRules context="##Alerts" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="MultilineComment">
<Detect2Chars attribute="Comment" context="MultilineComment" char="/" char1="*" beginRegion="CommentFolding" />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentFolding" />
<IncludeRules context="##Alerts" />
</context>
<context attribute="Attribute" lineEndContext="#stay" name="Attribute">
<StringDetect attribute="Attribute" context="#pop!AttrBuiltin1" String="builtin" />
<keyword attribute="Attribute" context="#pop" String="attribute" />
<DetectIdentifier attribute="Attribute" context="#pop" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="AttrBuiltin1">
<DetectChar attribute="Attribute" context="#pop!AttrBuiltin2" char="(" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="AttrBuiltin2">
<keyword attribute="Attribute" context="#stay" String="builtin_value_name" />
<DetectChar attribute="Attribute" context="#pop" char=")" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Keyword" defStyleNum="dsKeyword" />
<itemData name="BuiltIn" defStyleNum="dsDataType" />
<itemData name="Attribute" defStyleNum="dsAttribute" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Decimal Integer" defStyleNum="dsDecVal" />
<itemData name="Hexadecimal Integer" defStyleNum="dsBaseN" />
<itemData name="Decimal Float" defStyleNum="dsFloat" />
<itemData name="Hexadecimal Float" defStyleNum="dsFloat" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//" />
<comment name="multiLine" start="/*" end="*/" region="CommentFolding" />
</comments>
</general>
</language>