1
+ {
2
+ "scopeName" : " source.hlsl" ,
3
+ "name" : " HLSL" ,
4
+ "fileTypes" : [
5
+ " hlsl" ,
6
+ " hlsli" ,
7
+ " fx" ,
8
+ " fxh" ,
9
+ " vsh" ,
10
+ " psh" ,
11
+ " cginc" ,
12
+ " compute"
13
+ ],
14
+ "patterns" : [
15
+ {
16
+ "name" : " comment.line.block.hlsl" ,
17
+ "begin" : " /\\ *" ,
18
+ "end" : " \\ */"
19
+ },
20
+ {
21
+ "name" : " comment.line.double-slash.hlsl" ,
22
+ "begin" : " //" ,
23
+ "end" : " $"
24
+ },
25
+ {
26
+ "name" : " constant.numeric.hlsl" ,
27
+ "match" : " \\ b([0-9]+\\ .?[0-9]*)\\ b"
28
+ },
29
+ {
30
+ "name" : " constant.numeric.hlsl" ,
31
+ "match" : " \\ b(\\ .[0-9]+)\\ b"
32
+ },
33
+ {
34
+ "name" : " constant.numeric.hex.hlsl" ,
35
+ "match" : " \\ b(0x[0-9A-F]+)\\ b"
36
+ },
37
+ {
38
+ "name" : " constant.language.hlsl" ,
39
+ "match" : " \\ b(false|true)\\ b"
40
+ },
41
+ {
42
+ "name" : " keyword.preprocessor.hlsl" ,
43
+ "match" : " ^\\ s*#\\ s*(define|elif|else|endif|ifdef|ifndef|if|undef|include|line|error|pragma)"
44
+ },
45
+ {
46
+ "name" : " keyword.control.hlsl" ,
47
+ "match" : " \\ b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\ b"
48
+ },
49
+ {
50
+ "name" : " keyword.control.fx.hlsl" ,
51
+ "match" : " \\ b(compile)\\ b"
52
+ },
53
+ {
54
+ "name" : " keyword.typealias.hlsl" ,
55
+ "match" : " \\ b(typedef)\\ b"
56
+ },
57
+ {
58
+ "name" : " storage.type.basic.hlsl" ,
59
+ "match" : " \\ b(bool([1-4](x[1-4])?)?|double([1-4](x[1-4])?)?|dword|float([1-4](x[1-4])?)?|half([1-4](x[1-4])?)?|int([1-4](x[1-4])?)?|matrix|min10float([1-4](x[1-4])?)?|min12int([1-4](x[1-4])?)?|min16float([1-4](x[1-4])?)?|min16int([1-4](x[1-4])?)?|min16uint([1-4](x[1-4])?)?|unsigned|uint([1-4](x[1-4])?)?|vector|void)\\ b"
60
+ },
61
+ {
62
+ "name" : " support.function.hlsl" ,
63
+ "match" : " \\ b([a-zA-Z_][a-zA-Z0-9_]*)(?=[\\ s]*\\ ()"
64
+ },
65
+ {
66
+ "name" : " support.variable.semantic.hlsl" ,
67
+ "match" : " (?<=\\ :\\ s|\\ :)(?i:BINORMAL[0-9]*|BLENDINDICES[0-9]*|BLENDWEIGHT[0-9]*|COLOR[0-9]*|NORMAL[0-9]*|POSITIONT|POSITION|PSIZE[0-9]*|TANGENT[0-9]*|TEXCOORD[0-9]*|FOG|TESSFACTOR[0-9]*|VFACE|VPOS|DEPTH[0-9]*)\\ b"
68
+ },
69
+ {
70
+ "name" : " support.variable.semantic.sm4.hlsl" ,
71
+ "match" : " (?<=\\ :\\ s|\\ :)(?i:SV_ClipDistance[0-9]*|SV_CullDistance[0-9]*|SV_Coverage|SV_Depth|SV_DepthGreaterEqual[0-9]*|SV_DepthLessEqual[0-9]*|SV_InstanceID|SV_IsFrontFace|SV_Position|SV_RenderTargetArrayIndex|SV_SampleIndex|SV_StencilRef|SV_Target[0-7]?|SV_VertexID|SV_ViewportArrayIndex)\\ b"
72
+ },
73
+ {
74
+ "name" : " support.variable.semantic.sm5.hlsl" ,
75
+ "match" : " (?<=\\ :\\ s|\\ :)(?i:SV_DispatchThreadID|SV_DomainLocation|SV_GroupID|SV_GroupIndex|SV_GroupThreadID|SV_GSInstanceID|SV_InsideTessFactor|SV_OutputControlPointID|SV_TessFactor)\\ b"
76
+ },
77
+ {
78
+ "name" : " support.variable.semantic.sm5_1.hlsl" ,
79
+ "match" : " (?<=\\ :\\ s|\\ :)(?i:SV_InnerCoverage|SV_StencilRef)\\ b"
80
+ },
81
+ {
82
+ "name" : " storage.modifier.hlsl" ,
83
+ "match" : " \\ b(column_major|const|export|extern|globallycoherent|groupshared|inline|inout|in|out|precise|row_major|shared|static|uniform|volatile)\\ b"
84
+ },
85
+ {
86
+ "name" : " storage.modifier.float.hlsl" ,
87
+ "match" : " \\ b(snorm|unorm)\\ b"
88
+ },
89
+ {
90
+ "name" : " storage.modifier.postfix.hlsl" ,
91
+ "match" : " \\ b(packoffset|register)\\ b"
92
+ },
93
+ {
94
+ "name" : " storage.modifier.interpolation.hlsl" ,
95
+ "match" : " \\ b(centroid|linear|nointerpolation|noperspective|sample)\\ b"
96
+ },
97
+ {
98
+ "name" : " storage.modifier.geometryshader.hlsl" ,
99
+ "match" : " \\ b(lineadj|line|point|triangle|triangleadj)\\ b"
100
+ },
101
+ {
102
+ "name" : " support.type.other.hlsl" ,
103
+ "match" : " \\ b(string)\\ b"
104
+ },
105
+ {
106
+ "name" : " support.type.object.hlsl" ,
107
+ "match" : " \\ b(AppendStructuredBuffer|Buffer|ByteAddressBuffer|ConstantBuffer|ConsumeStructuredBuffer|InputPatch|OutputPatch)\\ b"
108
+ },
109
+ {
110
+ "name" : " support.type.object.rasterizerordered.hlsl" ,
111
+ "match" : " \\ b(RasterizerOrderedBuffer|RasterizerOrderedByteAddressBuffer|RasterizerOrderedStructuredBuffer|RasterizerOrderedTexture1D|RasterizerOrderedTexture1DArray|RasterizerOrderedTexture2D|RasterizerOrderedTexture2DArray|RasterizerOrderedTexture3D)\\ b"
112
+ },
113
+ {
114
+ "name" : " support.type.object.rw.hlsl" ,
115
+ "match" : " \\ b(RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture1D|RWTexture1DArray|RWTexture2D|RWTexture2DArray|RWTexture3D)\\ b"
116
+ },
117
+ {
118
+ "name" : " support.type.object.geometryshader.hlsl" ,
119
+ "match" : " \\ b(LineStream|PointStream|TriangleStream)\\ b"
120
+ },
121
+ {
122
+ "name" : " support.type.sampler.legacy.hlsl" ,
123
+ "match" : " \\ b(sampler|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler_state)\\ b"
124
+ },
125
+ {
126
+ "name" : " support.type.sampler.hlsl" ,
127
+ "match" : " \\ b(SamplerState|SamplerComparisonState)\\ b"
128
+ },
129
+ {
130
+ "name" : " support.type.texture.legacy.hlsl" ,
131
+ "match" : " \\ b(texture2D|textureCUBE)\\ b"
132
+ },
133
+ {
134
+ "name" : " support.type.texture.hlsl" ,
135
+ "match" : " \\ b(Texture1D|Texture1DArray|Texture2D|Texture2DArray|Texture2DMS|Texture2DMSArray|Texture3D|TextureCube|TextureCubeArray)\\ b"
136
+ },
137
+ {
138
+ "name" : " storage.type.structured.hlsl" ,
139
+ "match" : " \\ b(cbuffer|class|interface|namespace|struct|tbuffer)\\ b"
140
+ },
141
+ {
142
+ "name" : " support.constant.property-value.fx.hlsl" ,
143
+ "match" : " \\ b(FALSE|TRUE|NULL)\\ b"
144
+ },
145
+ {
146
+ "name" : " support.type.fx.hlsl" ,
147
+ "match" : " \\ b(BlendState|DepthStencilState|RasterizerState)\\ b"
148
+ },
149
+ {
150
+ "name" : " storage.type.fx.technique.hlsl" ,
151
+ "match" : " \\ b(technique|Technique|technique10|technique11|pass)\\ b"
152
+ },
153
+ {
154
+ "name" : " meta.object-literal.key.fx.blendstate.hlsl" ,
155
+ "match" : " \\ b(AlphaToCoverageEnable|BlendEnable|SrcBlend|DestBlend|BlendOp|SrcBlendAlpha|DestBlendAlpha|BlendOpAlpha|RenderTargetWriteMask)\\ b"
156
+ },
157
+ {
158
+ "name" : " meta.object-literal.key.fx.depthstencilstate.hlsl" ,
159
+ "match" : " \\ b(DepthEnable|DepthWriteMask|DepthFunc|StencilEnable|StencilReadMask|StencilWriteMask|FrontFaceStencilFail|FrontFaceStencilZFail|FrontFaceStencilPass|FrontFaceStencilFunc|BackFaceStencilFail|BackFaceStencilZFail|BackFaceStencilPass|BackFaceStencilFunc)\\ b"
160
+ },
161
+ {
162
+ "name" : " meta.object-literal.key.fx.rasterizerstate.hlsl" ,
163
+ "match" : " \\ b(FillMode|CullMode|FrontCounterClockwise|DepthBias|DepthBiasClamp|SlopeScaleDepthBias|ZClipEnable|ScissorEnable|MultiSampleEnable|AntiAliasedLineEnable)\\ b"
164
+ },
165
+ {
166
+ "name" : " meta.object-literal.key.fx.samplerstate.hlsl" ,
167
+ "match" : " \\ b(Filter|AddressU|AddressV|AddressW|MipLODBias|MaxAnisotropy|ComparisonFunc|BorderColor|MinLOD|MaxLOD)\\ b"
168
+ },
169
+ {
170
+ "name" : " support.constant.property-value.fx.blend.hlsl" ,
171
+ "match" : " \\ b(?i:ZERO|ONE|SRC_COLOR|INV_SRC_COLOR|SRC_ALPHA|INV_SRC_ALPHA|DEST_ALPHA|INV_DEST_ALPHA|DEST_COLOR|INV_DEST_COLOR|SRC_ALPHA_SAT|BLEND_FACTOR|INV_BLEND_FACTOR|SRC1_COLOR|INV_SRC1_COLOR|SRC1_ALPHA|INV_SRC1_ALPHA)\\ b"
172
+ },
173
+ {
174
+ "name" : " support.constant.property-value.fx.blendop.hlsl" ,
175
+ "match" : " \\ b(?i:ADD|SUBTRACT|REV_SUBTRACT|MIN|MAX)\\ b"
176
+ },
177
+ {
178
+ "name" : " support.constant.property-value.fx.depthwritemask.hlsl" ,
179
+ "match" : " \\ b(?i:ALL)\\ b"
180
+ },
181
+ {
182
+ "name" : " support.constant.property-value.fx.comparisonfunc.hlsl" ,
183
+ "match" : " \\ b(?i:NEVER|LESS|EQUAL|LESS_EQUAL|GREATER|NOT_EQUAL|GREATER_EQUAL|ALWAYS)\\ b"
184
+ },
185
+ {
186
+ "name" : " support.constant.property-value.fx.stencilop.hlsl" ,
187
+ "match" : " \\ b(?i:KEEP|REPLACE|INCR_SAT|DECR_SAT|INVERT|INCR|DECR)\\ b"
188
+ },
189
+ {
190
+ "name" : " support.constant.property-value.fx.fillmode.hlsl" ,
191
+ "match" : " \\ b(?i:WIREFRAME|SOLID)\\ b"
192
+ },
193
+ {
194
+ "name" : " support.constant.property-value.fx.cullmode.hlsl" ,
195
+ "match" : " \\ b(?i:NONE|FRONT|BACK)\\ b"
196
+ },
197
+ {
198
+ "name" : " support.constant.property-value.fx.filter.hlsl" ,
199
+ "match" : " \\ b(?i:MIN_MAG_MIP_POINT|MIN_MAG_POINT_MIP_LINEAR|MIN_POINT_MAG_LINEAR_MIP_POINT|MIN_POINT_MAG_MIP_LINEAR|MIN_LINEAR_MAG_MIP_POINT|MIN_LINEAR_MAG_POINT_MIP_LINEAR|MIN_MAG_LINEAR_MIP_POINT|MIN_MAG_MIP_LINEAR|ANISOTROPIC|COMPARISON_MIN_MAG_MIP_POINT|COMPARISON_MIN_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_POINT_MAG_MIP_LINEAR|COMPARISON_MIN_LINEAR_MAG_MIP_POINT|COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_MAG_MIP_LINEAR|COMPARISON_ANISOTROPIC|TEXT_1BIT)\\ b"
200
+ },
201
+ {
202
+ "name" : " support.constant.property-value.fx.textureaddressmode.hlsl" ,
203
+ "match" : " \\ b(?i:WRAP|MIRROR|CLAMP|BORDER|MIRROR_ONCE)\\ b"
204
+ },
205
+ {
206
+ "name" : " string.quoted.double.hlsl" ,
207
+ "begin" : " \" " ,
208
+ "end" : " \" " ,
209
+ "patterns" : [
210
+ {
211
+ "name" : " constant.character.escape.hlsl" ,
212
+ "match" : " \\\\ ."
213
+ }
214
+ ]
215
+ }
216
+ ]
217
+ }
0 commit comments