mc/misc/syntax/glsl.syntax

453 lines
15 KiB
YAML

# GLSL syntax file
# Authors:
# Sergey Sharybin <sergey.vfx@gmail.com>
#
# Based on glsl-mode.el from
# Xavier.Decoret@imag.fr
# Jim Hourihan <jimhourihan ~at~ gmail.com>
context default
# Types
keyword whole float yellow
keyword whole double yellow
keyword whole int yellow
keyword whole void yellow
keyword whole bool yellow
keyword whole true yellow
keyword whole false yellow
keyword whole mat2 yellow
keyword whole mat3 yellow
keyword whole mat4 yellow
keyword whole dmat2 yellow
keyword whole dmat3 yellow
keyword whole dmat4 yellow
keyword whole mat2x2 yellow
keyword whole mat2x3 yellow
keyword whole mat2x4 yellow
keyword whole dmat2x2 yellow
keyword whole dmat2x3 yellow
keyword whole dmat2x4 yellow
keyword whole mat3x2 yellow
keyword whole mat3x3 yellow
keyword whole mat3x4 yellow
keyword whole dmat3x2 yellow
keyword whole dmat3x3 yellow
keyword whole dmat3x4 yellow
keyword whole mat4x2 yellow
keyword whole mat4x3 yellow
keyword whole mat4x4 yellow
keyword whole dmat4x2 yellow
keyword whole dmat4x3 yellow
keyword whole dmat4x4 yellow
keyword whole vec2 yellow
keyword whole vec3 yellow
keyword whole vec4 yellow
keyword whole ivec2 yellow
keyword whole ivec3 yellow
keyword whole ivec4 yellow
keyword whole bvec2 yellow
keyword whole bvec3 yellow
keyword whole bvec4 yellow
keyword whole dvec2 yellow
keyword whole dvec3 yellow
keyword whole dvec4 yellow
keyword whole uint yellow
keyword whole uvec2 yellow
keyword whole uvec3 yellow
keyword whole uvec4 yellow
keyword whole sampler1D yellow
keyword whole sampler2D yellow
keyword whole sampler3D yellow
keyword whole samplerCube yellow
keyword whole sampler1DShadow yellow
keyword whole sampler2DShadow yellow
keyword whole samplerCubeShadow yellow
keyword whole sampler1DArray yellow
keyword whole sampler2DArray yellow
keyword whole sampler1DArrayShadow yellow
keyword whole sampler2DArrayShadow yellow
keyword whole isampler1D yellow
keyword whole isampler2D yellow
keyword whole isampler3D yellow
keyword whole isamplerCube yellow
keyword whole isampler1DArray yellow
keyword whole isampler2DArray yellow
keyword whole usampler1D yellow
keyword whole usampler2D yellow
keyword whole usampler3D yellow
keyword whole usamplerCube yellow
keyword whole usampler1DArray yellow
keyword whole usampler2DArray yellow
keyword whole sampler2DRect yellow
keyword whole sampler2DRectShadow yellow
keyword whole isampler2DRect yellow
keyword whole usampler2DRect yellow
keyword whole samplerBuffer yellow
keyword whole isamplerBuffer yellow
keyword whole usamplerBuffer yellow
keyword whole sampler2DMS yellow
keyword whole isampler2DMS yellow
keyword whole usampler2DMS yellow
keyword whole sampler2DMSArray yellow
keyword whole isampler2DMSArray yellow
keyword whole usampler2DMSArray yellow
keyword whole samplerCubeArray yellow
keyword whole samplerCubeArrayShadow yellow
keyword whole isamplerCubeArray yellow
keyword whole usamplerCubeArray yellow
keyword whole image1D yellow
keyword whole iimage1D yellow
keyword whole uimage1D yellow
keyword whole image2D yellow
keyword whole iimage2D yellow
keyword whole uimage2D yellow
keyword whole image3D yellow
keyword whole iimage3D yellow
keyword whole uimage3D yellow
keyword whole image2DRect yellow
keyword whole iimage2DRect yellow
keyword whole uimage2DRect yellow
keyword whole imageCube yellow
keyword whole iimageCube yellow
keyword whole uimageCube yellow
keyword whole imageBuffer yellow
keyword whole iimageBuffer yellow
keyword whole uimageBuffer yellow
keyword whole image1DArray yellow
keyword whole iimage1DArray yellow
keyword whole uimage1DArray yellow
keyword whole image2DArray yellow
keyword whole iimage2DArray yellow
keyword whole uimage2DArray yellow
keyword whole imageCubeArray yellow
keyword whole iimageCubeArray yellow
keyword whole uimageCubeArray yellow
keyword whole image2DMS yellow
keyword whole iimage2DMS yellow
keyword whole uimage2DMS yellow
keyword whole image2DMSArray yellow
keyword whole iimage2DMSArray yellow
keyword whole uimage2DMSArray yellow
keyword whole long yellow
keyword whole short yellow
keyword whole half yellow
keyword whole fixed yellow
keyword whole unsigned yellow
keyword whole hvec2 yellow
keyword whole hvec3 yellow
keyword whole hvec4 yellow
keyword whole fvec2 yellow
keyword whole fvec3 yellow
keyword whole fvec4 yellow
keyword whole sampler3DRect yellow
# Modifiers
keyword whole attribute yellow
keyword whole const yellow
keyword whole uniform yellow
keyword whole varying yellow
keyword whole buffer yellow
keyword whole shared yellow
keyword whole coherent yellow
keyword whole volatile yellow
keyword whole restrict yellow
keyword whole readonly yellow
keyword whole writeonly yellow
keyword whole atomic_uint yellow
keyword whole layout yellow
keyword whole centroid yellow
keyword whole flat yellow
keyword whole smooth yellow
keyword whole noperspective yellow
keyword whole patch yellow
keyword whole sample yellow
keyword whole break yellow
keyword whole continue yellow
keyword whole do yellow
keyword whole for yellow
keyword whole while yellow
keyword whole switch yellow
keyword whole case yellow
keyword whole default yellow
keyword whole if yellow
keyword whole else yellow
keyword whole subroutine yellow
keyword whole in yellow
keyword whole out yellow
keyword whole inout yellow
keyword whole invariant yellow
keyword whole discard yellow
keyword whole return yellow
keyword whole lowp yellow
keyword whole mediump yellow
keyword whole highp yellow
keyword whole precision yellow
keyword whole struct yellow
keyword whole common yellow
keyword whole partition yellow
keyword whole active yellow
keyword whole asm yellow
keyword whole class yellow
keyword whole union yellow
keyword whole enum yellow
keyword whole typedef yellow
keyword whole template yellow
keyword whole this yellow
keyword whole packed yellow
keyword whole resource yellow
keyword whole goto yellow
keyword whole inline yellow
keyword whole noinline yellow
keyword whole public yellow
keyword whole static yellow
keyword whole extern yellow
keyword whole external yellow
keyword whole interface yellow
keyword whole superp yellow
keyword whole input yellow
keyword whole output yellow
keyword whole filter yellow
keyword whole sizeof yellow
keyword whole cast yellow
keyword whole namespace yellow
keyword whole using yellow
keyword whole row major yellow
keyword whole early_fragment_tests yellow
# Deprecated
keyword whole varying brightred
keyword whole attribute brightred
# Built-in
keyword whole abs brightmagenta
keyword whole acos brightmagenta
keyword whole acosh brightmagenta
keyword whole all brightmagenta
keyword whole any brightmagenta
keyword whole asin brightmagenta
keyword whole asinh brightmagenta
keyword whole atan brightmagenta
keyword whole atanh brightmagenta
keyword whole atomicCounter brightmagenta
keyword whole atomicCounterDecrement brightmagenta
keyword whole atomicCounterIncrement brightmagenta
keyword whole barrier brightmagenta
keyword whole bitCount brightmagenta
keyword whole bitfieldExtract brightmagenta
keyword whole bitfieldInsert brightmagenta
keyword whole bitfieldReverse brightmagenta
keyword whole ceil brightmagenta
keyword whole clamp brightmagenta
keyword whole cos brightmagenta
keyword whole cosh brightmagenta
keyword whole cross brightmagenta
keyword whole degrees brightmagenta
keyword whole determinant brightmagenta
keyword whole dFdx brightmagenta
keyword whole dFdy brightmagenta
keyword whole dFdyFine brightmagenta
keyword whole dFdxFine brightmagenta
keyword whole dFdyCoarse brightmagenta
keyword whole dFdxCourse brightmagenta
keyword whole fwidthFine brightmagenta
keyword whole fwidthCoarse brightmagenta
keyword whole distance brightmagenta
keyword whole dot brightmagenta
keyword whole EmitStreamVertex brightmagenta
keyword whole EmitVertex brightmagenta
keyword whole EndPrimitive brightmagenta
keyword whole EndStreamPrimitive brightmagenta
keyword whole equal brightmagenta
keyword whole exp brightmagenta
keyword whole exp2 brightmagenta
keyword whole faceforward brightmagenta
keyword whole findLSB brightmagenta
keyword whole findMSB brightmagenta
keyword whole floatBitsToInt brightmagenta
keyword whole floatBitsToUint brightmagenta
keyword whole floor brightmagenta
keyword whole fma brightmagenta
keyword whole fract brightmagenta
keyword whole frexp brightmagenta
keyword whole fwidth brightmagenta
keyword whole greaterThan brightmagenta
keyword whole greaterThanEqual brightmagenta
keyword whole imageAtomicAdd brightmagenta
keyword whole imageAtomicAnd brightmagenta
keyword whole imageAtomicCompSwap brightmagenta
keyword whole imageAtomicExchange brightmagenta
keyword whole imageAtomicMax brightmagenta
keyword whole imageAtomicMin brightmagenta
keyword whole imageAtomicOr brightmagenta
keyword whole imageAtomicXor brightmagenta
keyword whole imageLoad brightmagenta
keyword whole imageSize brightmagenta
keyword whole imageStore brightmagenta
keyword whole imulExtended brightmagenta
keyword whole intBitsToFloat brightmagenta
keyword whole imageSamples brightmagenta
keyword whole interpolateAtCentroid brightmagenta
keyword whole interpolateAtOffset brightmagenta
keyword whole interpolateAtSample brightmagenta
keyword whole inverse brightmagenta
keyword whole inversesqrt brightmagenta
keyword whole isinf brightmagenta
keyword whole isnan brightmagenta
keyword whole ldexp brightmagenta
keyword whole length brightmagenta
keyword whole lessThan brightmagenta
keyword whole lessThanEqual brightmagenta
keyword whole log brightmagenta
keyword whole log2 brightmagenta
keyword whole matrixCompMult brightmagenta
keyword whole max brightmagenta
keyword whole memoryBarrier brightmagenta
keyword whole min brightmagenta
keyword whole mix brightmagenta
keyword whole mod brightmagenta
keyword whole modf brightmagenta
keyword whole noise brightmagenta
keyword whole normalize brightmagenta
keyword whole not brightmagenta
keyword whole notEqual brightmagenta
keyword whole outerProduct brightmagenta
keyword whole packDouble2x32 brightmagenta
keyword whole packHalf2x16 brightmagenta
keyword whole packSnorm2x16 brightmagenta
keyword whole packSnorm4x8 brightmagenta
keyword whole packUnorm2x16 brightmagenta
keyword whole packUnorm4x8 brightmagenta
keyword whole pow brightmagenta
keyword whole radians brightmagenta
keyword whole reflect brightmagenta
keyword whole refract brightmagenta
keyword whole round brightmagenta
keyword whole roundEven brightmagenta
keyword whole sign brightmagenta
keyword whole sin brightmagenta
keyword whole sinh brightmagenta
keyword whole smoothstep brightmagenta
keyword whole sqrt brightmagenta
keyword whole step brightmagenta
keyword whole tan brightmagenta
keyword whole tanh brightmagenta
keyword whole texelFetch brightmagenta
keyword whole texelFetchOffset brightmagenta
keyword whole texture brightmagenta
keyword whole textureGather brightmagenta
keyword whole textureGatherOffset brightmagenta
keyword whole textureGatherOffsets brightmagenta
keyword whole textureGrad brightmagenta
keyword whole textureGradOffset brightmagenta
keyword whole textureLod brightmagenta
keyword whole textureLodOffset brightmagenta
keyword whole textureOffset brightmagenta
keyword whole textureProj brightmagenta
keyword whole textureProjGrad brightmagenta
keyword whole textureProjGradOffset brightmagenta
keyword whole textureProjLod brightmagenta
keyword whole textureProjLodOffset brightmagenta
keyword whole textureProjOffset brightmagenta
keyword whole textureQueryLevels brightmagenta
keyword whole textureQueryLod brightmagenta
keyword whole textureSize brightmagenta
keyword whole transpose brightmagenta
keyword whole trunc brightmagenta
keyword whole uaddCarry brightmagenta
keyword whole uintBitsToFloat brightmagenta
keyword whole umulExtended brightmagenta
keyword whole unpackDouble2x32 brightmagenta
keyword whole unpackHalf2x16 brightmagenta
keyword whole unpackSnorm2x16 brightmagenta
keyword whole unpackSnorm4x8 brightmagenta
keyword whole unpackUnorm2x16 brightmagenta
keyword whole unpackUnorm4x8 brightmagenta
keyword whole usubBorrow brightmagenta
# Deprecated built-in
keyword whole texture1D magenta
keyword whole texture1DProj magenta
keyword whole texture1DLod magenta
keyword whole texture1DProjLod magenta
keyword whole texture2D magenta
keyword whole texture2DProj magenta
keyword whole texture2DLod magenta
keyword whole texture2DProjLod magenta
keyword whole texture2DRect magenta
keyword whole texture2DRectProj magenta
keyword whole texture3D magenta
keyword whole texture3DProj magenta
keyword whole texture3DLod magenta
keyword whole texture3DProjLod magenta
keyword whole shadow1D magenta
keyword whole shadow1DProj magenta
keyword whole shadow1DLod magenta
keyword whole shadow1DProjLod magenta
keyword whole shadow2D magenta
keyword whole shadow2DProj magenta
keyword whole shadow2DLod magenta
keyword whole shadow2DProjLod magenta
keyword whole textureCube magenta
keyword whole textureCubeLod magenta
# Deprecated variables
keyword whole gl_FragColor red
keyword whole gl_FragData red
keyword whole gl_MaxVarying red
keyword whole gl_MaxVaryingFloats red
keyword whole gl_MaxVaryingComponents red
# Comments
keyword /\* brown
keyword \*/ brown
keyword // brown
# Preprocessor
keyword # brightred
# Punctuation
keyword > white
keyword < white
keyword \+ white
keyword - white
keyword \* white
keyword / white
keyword % white
keyword = white
keyword != white
keyword == white
keyword & white
keyword | white
keyword :: white
keyword -> white
keyword { brightcyan
keyword } brightcyan
keyword ( brightcyan
keyword ) brightcyan
keyword [ brightcyan
keyword ] brightcyan
keyword , brightcyan
keyword : brightcyan
keyword ; brightmagenta
context exclusive # \n brightred
keyword \\\n yellow
keyword /\**\*/ brown
keyword //*\n brown
keyword "+" red
keyword <+> red
context exclusive /\* \*/ brown
spellcheck
context exclusive // \n brown
spellcheck
context " " green
spellcheck
context ' ' brightgreen
spellcheck