]> git.draconx.ca Git - vimconf.git/blob - syntax/glsl400.vim
Add editing rules for awk.
[vimconf.git] / syntax / glsl400.vim
1 " Vim syntax file the OpenGL Shading Language
2 " Language:     GLSL 400
3 " Author:       Kamil Patelczyk <patelczyk@gmail.com>
4 " Date:         July 17, 2010
5 " File Types:   .glsl
6 " Version:      1
7 " Notes:        Adapted from c.vim - Bram Moolenaar <bram.vim.org>
8 "               Adapted from cg.vim - Kevin Bjorke <kbjorke@nvidia.com>
9 "               Adapted from glsl.vim - Nathan Cournia <nathan@cournia.com>
10
11 " For version 5.x: Clear all syntax items
12 " For version 6.x: Quit when a syntax file was already loaded
13 if version < 600
14   syntax clear
15 elseif exists("b:current_syntax")
16   finish
17 endif
18
19 " glslCommentGroup allows adding matches for special things in comments
20 syn cluster         glslCommentGroup    contains=glslTodo
21
22 "catch errors caused by wrong parenthesis and brackets
23 syn cluster         glslParenGroup      contains=glslParenError,glslIncluded,glslSpecial,glslCommentSkip,glslCommentString,glslComment2String,@glslCommentGroup,glslCommentStartError,glslUserCont,glslUserLabel,glslBitField,glslCommentSkip,glslOctalZero,glslCppOut,glslCppOut2,glslCppSkip,glslFormat,glslNumber,glslFloat,glslOctal,glslOctalError,glslNumbersCom,glslLayoutQual
24 if exists("c_no_bracket_error")
25   syn region        glslParen           transparent start='(' end=')' contains=ALLBUT,@glslParenGroup,glslCppParen,glslCppString
26   " glslCppParen: same as glslParen but ends at end-of-line; used in glslDefine
27   syn region        glslCppParen        transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@glslParenGroup,glslParen,glslString
28   syn match         glslParenError      display ")"
29   syn match         glslErrInParen      display contained "[{}]"
30 else
31   syn region        glslParen           transparent start='(' end=')' contains=ALLBUT,@glslParenGroup,glslCppParen,glslErrInBracket,glslCppBracket,glslCppString
32   " glslCppParen: same as glslParen but ends at end-of-line; used in glslDefine
33   syn region        glslCppParen        transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@glslParenGroup,glslErrInBracket,glslParen,glslBracket,glslString
34   syn match         glslParenError      display "[\])]"
35   syn match         glslErrInParen      display contained "[\]{}]"
36   syn region        glslBracket         transparent start='\[' end=']' contains=ALLBUT,@glslParenGroup,glslErrInParen,glslCppParen,glslCppBracket,glslCppString
37   " glslCppBracket: same as glslParen but ends at end-of-line; used in glslDefine
38   syn region        glslCppBracket      transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@glslParenGroup,glslErrInParen,glslParen,glslBracket,glslString
39   syn match         glslErrInBracket    display contained "[);{}]"
40 endif
41
42 "integer number, or floating point number without a dot and with "f".
43 syn case ignore
44 syn match           glslNumbers         display transparent "\<\d\|\.\d" contains=glslNumber,glslFloat,glslOctalError,glslOctal
45 " Same, but without octal error (for comments)
46 syn match           glslNumbersCom      display contained transparent "\<\d\|\.\d" contains=glslNumber,glslFloat,glslOctal
47 syn match           glslNumber          display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
48 "hex number
49 syn match           glslNumber          display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
50 " Flag the first zero of an octal number as something special
51 syn match           glslOctal           display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=glslOctalZero
52 syn match           glslOctalZero       display contained "\<0"
53 syn match           glslFloat           display contained "\d\+f"
54 "floating point number, with dot, optional exponent
55 syn match           glslFloat           display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
56 "floating point number, starting with a dot, optional exponent
57 syn match           glslFloat           display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
58 "floating point number, without dot, with exponent
59 syn match           glslFloat           display contained "\d\+e[-+]\=\d\+[fl]\=\>"
60 " flag an octal number with wrong digits
61 syn match           glslOctalError      display contained "0\o*[89]\d*"
62 syn case match
63
64 if exists("c_comment_strings")
65   " A comment can contain glslString, glslCharacter and glslNumber.
66   " But a "*/" inside a glslString in a glslComment DOES end the comment!  So we
67   " need to use a special type of glslString: glslCommentString, which also ends on
68   " "*/", and sees a "*" at the start of the line as glslomment again.
69   " Unfortunately this doesn't very well work for // type of comments :-(
70   syntax match      glslCommentSkip         contained "^\s*\*\($\|\s\+\)"
71   syntax region     glslCommentString       contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=glslSpecial,glslCommentSkip
72   syntax region     glslComment2String      contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=glslSpecial
73   syntax region     glslCommentL            start="//" skip="\\$" end="$" keepend contains=@glslCommentGroup,glslComment2String,glslCharacter,glslNumbersCom,glslSpaceError
74   syntax region     glslComment             matchgroup=glslCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@glslCommentGroup,glslCommentStartError,glslCommentString,glslCharacter,glslNumbersCom,glslSpaceError
75 else                                        
76   syn region        glslCommentL            start="//" skip="\\$" end="$" keepend contains=@glslCommentGroup,glslSpaceError
77   syn region        glslComment             matchgroup=glslCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@glslCommentGroup,glslCommentStartError,glslSpaceError
78 endif
79 " keep a // comment separately, it terminates a preproc. conditional
80 syntax match        glslCommentError        display "\*/"
81 syntax match        glslCommentStartError   display "/\*"me=e-1 contained
82
83 syn region          glslPreCondit           start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=glslComment,glslCppString,glslCharacter,glslCppParen,glslParenError,glslNumbers,glslCommentError,glslSpaceError
84 syn match           glslPreCondit           display "^\s*#\s*\(else\|endif\)\>"
85 syn region          glslCppOut              start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=glslCppOut2
86 syn region          glslCppOut2             contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=glslSpaceError,glslCppSkip
87 syn region          glslCppSkip             contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=glslSpaceError,glslCppSkip
88 "syn match glslLineSkip        "\\$"
89 syn cluster         glslPreProglslGroup     contains=glslPreCondit,glslIncluded,glslInclude,glslDefine,glslErrInParen,glslErrInBracket,glslUserLabel,glslSpecial,glslOctalZero,glslCppOut,glslCppOut2,glslCppSkip,glslFormat,glslNumber,glslFloat,glslOctal,glslOctalError,glslNumbersCom,glslString,glslCommentSkip,glslCommentString,glslComment2String,@glslCommentGroup,glslCommentStartError,glslParen,glslBracket,glslMulti
90 syn region          glslDefine              start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@glslPreProglslGroup
91 syn region          glslPreProc             start="^\s*#\s*\(pragma\>\|line\>\|error\>\|version\>\|extension\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@glslPreProglslGroup
92
93 " Highlight User Labels
94 syn cluster         glslMultiGroup          contains=glslIncluded,glslSpecial,glslCommentSkip,glslCommentString,glslComment2String,@glslCommentGroup,glslCommentStartError,glslUserCont,glslUserLabel,glslBitField,glslOctalZero,glslCppOut,glslCppOut2,glslCppSkip,glslFormat,glslNumber,glslFloat,glslOctal,glslOctalError,glslNumbersCom,glslCppParen,glslCppBracket,glslCppString
95 syn region          glslMulti               transparent start='?' skip='::' end=':' contains=ALLBUT,@glslMultiGroup
96 " Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
97 syn cluster         glslLabelGroup          contains=glslUserLabel
98 syn match           glslUserCont            display "^\s*\I\i*\s*:$" contains=@glslLabelGroup
99 syn match           glslUserCont            display ";\s*\I\i*\s*:$" contains=@glslLabelGroup
100 syn match           glslUserCont            display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@glslLabelGroup
101 syn match           glslUserCont            display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@glslLabelGroup
102
103 syn match           glslUserLabel           display "\I\i*" contained
104
105 " Avoid recognizing most bitfields as labels
106 syn match           glslBitField            display "^\s*\I\i*\s*:\s*[1-9]"me=e-1
107 syn match           glslBitField            display ";\s*\I\i*\s*:\s*[1-9]"me=e-1
108
109
110 " Keywords and simple stuff 
111 syn keyword         glslTodo                contained TODO FIXME XXX
112
113 syn keyword         glslStorageClass        const uniform
114 syn keyword         glslStorageClass        in out inout
115 syn keyword         glslStorageClass        patch sample
116 syn keyword         glslStorageClass        centroid flat smooth noperspective
117 syn keyword         glslStorageClass        lowp mediump highp precision
118 syn keyword         glslStorageClass        invariant
119 syn keyword         glslStorageClass        subroutine
120
121 syn match           glslLayout              /\<layout\s*(\_.\{-})/hs=s,he=s+6 contains=glslLayoutQual,glslNumber
122                                             
123 syn keyword         glslStorageClassDeprec  attribute varying
124
125 syn keyword         glslLayoutQual          contained shared packed std140 row_major column_major ccw cw equal_spacing fractional_even_spacing
126 syn keyword         glslLayoutQual          contained fractional_odd_spacing index invocations isolines line_strip lines lines_adjacency location
127 syn keyword         glslLayoutQual          contained max_vertices origin_upper_left pixel_center_integer point_mode points quads
128 syn keyword         glslLayoutQual          contained stream triangle_strip triangles triangles_adjacency vertices
129
130 syn keyword         glslStatement           break continue discard return
131 syn keyword         glslRepeat              while for do
132 syn keyword         glslConditional         if else switch
133 syn keyword         glslLabel               case default
134                                             
135 syn keyword         glslConstant            true false
136 syn keyword         glslConstant            __LINE__ __FILE__ __VERSION__
137                                             
138 syn keyword         glslType                uint uvec2 uvec3 uvec4
139 syn keyword         glslType                float double int void bool
140 syn keyword         glslType                mat2 mat3 mat4 dmat2 dmat3 dmat4
141 syn keyword         glslType                mat2x2 mat2x3 mat2x4 dmat2x2 dmat2x3 dmat2x4
142 syn keyword         glslType                mat3x2 mat3x3 mat3x4 dmat3x2 dmat3x3 dmat3x4
143 syn keyword         glslType                mat4x2 mat4x3 mat4x4 dmat4x2 dmat4x3 dmat4x4
144 syn keyword         glslType                vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 dvec2 dvec3 dvec4
145 syn keyword         glslType                sampler1D sampler2D sampler3D samplerCube 
146 syn keyword         glslType                sampler1DShadow sampler2DShadow samplerCubeShadow
147 syn keyword         glslType                sampler1DArray sampler2DArray
148 syn keyword         glslType                sampler1DArrayShadow sampler2DArrayShadow
149 syn keyword         glslType                isampler1D isampler2D isampler3D isamplerCube
150 syn keyword         glslType                isampler1DArray isampler2DArray
151 syn keyword         glslType                usampler1D usampler2D usampler3D usamplerCube
152 syn keyword         glslType                usampler1DArray usampler2DArray
153 syn keyword         glslType                sampler2DRect sampler2DRectShadow isampler2DRect usampler2DRect
154 syn keyword         glslType                samplerBuffer isamplerBuffer usamplerBuffer
155 syn keyword         glslType                sampler2DMS isampler2DMS usampler2DMS
156 syn keyword         glslType                sampler2DMSArray isampler2DMSArray usampler2DMSArray
157 syn keyword         glslType                samplerCubeArray samplerCubeArrayShadow isamplerCubeArray usamplerCubeArray
158                                             
159 syn keyword         glslStructure           struct
160                                             
161 " Swizzling                                  
162 syn match           glslSwizzle             /\.[xyzw]\{1,4\}\>/
163 syn match           glslSwizzle             /\.[rgba]\{1,4\}\>/
164 syn match           glslSwizzle             /\.[stpq]\{1,4\}\>/
165                                             
166 " Builtin variables
167 syn keyword         glslState               gl_FragCoord gl_FrontFacing gl_PointCoord gl_SampleID gl_SamplePosition gl_FragDepth
168 syn keyword         glslState               gl_VertexID gl_InstanceID gl_Position gl_PointSize
169 syn keyword         glslState               gl_PrimitiveIDIn gl_InvocationID gl_PrimitiveID gl_Layer
170 syn keyword         glslState               gl_ClipDistance gl_in gl_SampleMask
171
172 syn keyword         glslStateDeprec         gl_FragColor gl_FragData gl_TexCoord
173 syn keyword         glslStateDeprec         gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_FogFragCoord
174 syn keyword         glslStateDeprec         gl_Color gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2
175 syn keyword         glslStateDeprec         gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord
176
177 " Uniforms variables
178 syn keyword         glslUniform             gl_DepthRange
179
180 syn keyword         glslUniformDeprec       gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_NormalMatrix gl_NormalScale
181 syn keyword         glslUniformDeprec       gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse
182 syn keyword         glslUniformDeprec       gl_ModelViewMatrixTranspose gl_ProjectionMatrixTranspose gl_ModelViewProjectionMatrixTranspose
183 syn keyword         glslUniformDeprec       gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose 
184 syn keyword         glslUniformDeprec       gl_Point gl_FrontMaterial gl_BackMaterial gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_Fog
185 syn keyword         glslUniformDeprec       gl_BackLightProduct gl_ClipPlane gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT
186 syn keyword         glslUniformDeprec       gl_FrontLightProduct gl_LightSource gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS
187 syn keyword         glslUniformDeprec       gl_ObjectPlaneT gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixInverse
188 syn keyword         glslUniformDeprec       gl_TextureMatrixTranspose gl_TextureMatrix
189
190 " Builtin constants
191 syn keyword         glslConstant            gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVertexOutputComponents gl_MaxGeometryInputComponents
192 syn keyword         glslConstant            gl_MaxGeometryOutputComponents gl_MaxFragmentInputComponents gl_MaxVertexTextureImageUnits
193 syn keyword         glslConstant            gl_MaxCombinedTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxDrawBuffers
194 syn keyword         glslConstant            gl_MaxClipDistances gl_MaxGeometryTextureImageUnits gl_MaxGeometryOutputVertices gl_MaxGeometryTotalOutputComponents
195 syn keyword         glslConstant            gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents
196 syn keyword         glslConstant            gl_MaxTessControlTextureImageUnits gl_MaxTessControlUniformComponents gl_MaxTessControlTotalOutputComponents
197 syn keyword         glslConstant            gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits
198 syn keyword         glslConstant            gl_MaxTessEvaluationUniformComponents gl_MaxTessPatchComponents gl_MaxPatchVertices gl_MaxTessGenLevel
199
200 syn keyword         glslConstantDeprec      gl_MaxVaryingFloats gl_MaxVaryingComponents
201 syn keyword         glslConstantDeprec      gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxClipPlanes
202
203 " Built in functions                         
204 syn keyword         glslFunc                abs acos acosh asin asinh atan atanh ceil cos cosh degrees exp exp2 floor fract inversesqrt log
205 syn keyword         glslFunc                log2 max min mod modf pow radians round roundEven sign sin sinh sqrt tan tanh trunc
206 syn keyword         glslFunc                clamp cross distance dot floatBitsToInt floatBitsToUint fma frexp intBitsToFloat isinf isnan
207 syn keyword         glslFunc                ldexp length mix normalize packDouble2x32 packSnorm4x8 packUnorm2x16 packUnorm4x8 smoothstep step
208 syn keyword         glslFunc                uintBitsToFloat unpackDouble2x32 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8
209 syn keyword         glslFunc                all any bitCount bitfieldExtract bitfieldInsert bitfieldReverse determinant equal faceforward
210 syn keyword         glslFunc                findLSB findMSB greaterThan greaterThanEqual imulExtended inverse lessThan lessThanEqual matrixCompMult 
211 syn keyword         glslFunc                not notEqual outerProduct reflect refract transpose uaddCarry umulExtended usubBorrow 
212 syn keyword         glslFunc                textureSize textureQueryLod texture textureProj textureLod textureOffset texelFetch texelFetchOffset
213 syn keyword         glslFunc                textureProjOffset textureLodOffset textureProjLod textureProjLodOffset textureGrad textureGradOffset
214 syn keyword         glslFunc                textureProjGrad textureProjGradOffset textureGather textureGatherOffset textureGatherOffsets
215 syn keyword         glslFunc                dFdx dFdy fwidth interpolateAtCentroid interpolateAtOffset interpolateAtSample 
216 syn keyword         glslFunc                noise1 noise2 noise3 noise4
217 syn keyword         glslFunc                EmitStreamVertex EndStreamPrimitive EmitVertex EndPrimitive barrier
218
219 syn keyword         glslFuncDeprec          ftransform
220 syn keyword         glslFuncDeprec          texture1D texture1DProj texture1DProj texture1DLod texture1DProjLod texture1DProjLod texture2D 
221 syn keyword         glslFuncDeprec          texture2DProj texture2DProj texture2DLod texture2DProjLod texture2DProjLod texture3D texture3DProj 
222 syn keyword         glslFuncDeprec          texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj 
223 syn keyword         glslFuncDeprec          shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod
224
225
226 " Highlight unsupported keywords             
227 syn keyword         glslUnsupported         asm
228 syn keyword         glslUnsupported         class union enum typedef template this packed 
229 syn keyword         glslUnsupported         common partition active
230 syn keyword         glslUnsupported         filter 
231 syn keyword         glslUnsupported         goto 
232 syn keyword         glslUnsupported         hvec2 hvec3 hvec4 fvec2 fvec3 fvec4
233 syn keyword         glslUnsupported         iimage1D iimage2D iimage3D iimageCube 
234 syn keyword         glslUnsupported         iimage1DArray iimage2DArray uimage1DArray uimage2DArray
235 syn keyword         glslUnsupported         image1D image2D image3D imageCube 
236 syn keyword         glslUnsupported         image1DArray image2DArray 
237 syn keyword         glslUnsupported         image1DArrayShadow image2DArrayShadow
238 syn keyword         glslUnsupported         image1DShadow image2DShadow
239 syn keyword         glslUnsupported         imageBuffer iimageBuffer uimageBuffer
240 syn keyword         glslUnsupported         inline noinline volatile public static extern external interface
241 syn keyword         glslUnsupported         input output
242 syn keyword         glslUnsupported         long short half fixed unsigned superp
243 syn keyword         glslUnsupported         namespace using
244 syn keyword         glslUnsupported         sampler3DRect 
245 syn keyword         glslUnsupported         sizeof cast
246 syn keyword         glslUnsupported         uimage1D uimage2D uimage3D uimageCube 
247
248 " Define the default highlighting.
249 " For version 5.7 and earlier: only when not done already
250 " For version 5.8 and later: only when an item doesn't have highlighting yet
251 if version >= 508 || !exists("did_glsl_syn_inits")
252   if version < 508
253     let did_glsl_syn_inits = 1
254     command -nargs=+ HiLink hi link <args>
255   else
256     command -nargs=+ HiLink hi def link <args>
257   endif
258
259   HiLink glslCharacter                Character
260   HiLink glslComment                  Comment
261   HiLink glslComment2String           glslString
262   HiLink glslCommentError             glslError
263   HiLink glslCommentL                 glslComment
264   HiLink glslCommentSkip              glslComment
265   HiLink glslCommentStart             glslComment
266   HiLink glslCommentStartError        glslError
267   HiLink glslCommentString            glslString
268   HiLink glslCppOut                   Comment
269   HiLink glslCppOut2                  glslCppOut
270   HiLink glslCppSkip                  glslCppOut
271   HiLink glslCppString                glslString
272   HiLink glslDefine                   Macro
273   HiLink glslErrInBracket             glslError
274   HiLink glslErrInParen               glslError
275   HiLink glslError                    Error
276   HiLink glslFloat                    Float
277   HiLink glslFormat                   glslSpecial
278   HiLink glslInclude                  Include
279   HiLink glslIncluded                 glslString
280   HiLink glslNumber                   Number
281   HiLink glslOctal                    Number
282   HiLink glslOctalError               glslError
283   HiLink glslOctalZero                PreProc
284   HiLink glslOperator                 Operator
285   HiLink glslParenError               glslError
286   HiLink glslPreCondit                PreCondit
287   HiLink glslPreProc                  PreProc
288   HiLink glslSpaceError               glslError
289   HiLink glslSpecial                  SpecialChar
290   HiLink glslSpecialCharacter         glslSpecial
291   HiLink glslSpecialError             glslError
292   HiLink glslString                   String
293
294   HiLink glslConditional              Conditional
295   HiLink glslConstant                 Constant
296   HiLink glslFunc                     glslStatement
297   HiLink glslFuncDeprec               WarningMsg
298   HiLink glslLabel                    Label
299   HiLink glslLayoutQual               glslFunc
300   HiLink glslRepeat                   Repeat
301   HiLink glslState                    glslType
302   HiLink glslStateDeprec              WarningMsg
303   HiLink glslStatement                Statement
304   HiLink glslStorageClass             StorageClass
305   HiLink glslLayout                   StorageClass
306   HiLink glslStorageClassDeprec       WarningMsg
307   HiLink glslStructure                Structure
308   HiLink glslSwizzle                  SpecialChar
309   HiLink glslTodo                     Todo
310   HiLink glslType                     Type
311   HiLink glslUniform                  glslType
312   HiLink glslUniformDeprec            WarningMsg
313   HiLink glslUnsupported              glslError
314   HiLink glslUserLabel                Label
315
316   delcommand HiLink
317 endif
318
319 let b:current_syntax = "glsl400"