From fbddc0c520a31680a58eb35c09792cc4b52e3f6c Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:07:23 +0000 Subject: Replace tabs with spaces. Make formatting consistent. --- syntax/glsl.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index fa91df2..7e36450 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -1,7 +1,7 @@ " Vim syntax file -" Language: OpenGL Shading Language -" Maintainer: Sergey Tikhomirov -" Last Change: 2012 July 10 +" Language: OpenGL Shading Language +" Maintainer: Sergey Tikhomirov +" Last Change: 2012 July 10 if exists("b:current_syntax") finish @@ -13,7 +13,7 @@ syn keyword glslRepeat for while do syn keyword glslStatement discard return break continue " Comments -syn keyword glslTodo contained TODO FIXME XXX +syn keyword glslTodo contained TODO FIXME XXX syn region glslCommentL start="//" skip="\\$" end="$" keepend contains=glslTodo syn region glslComment matchgroup=glslCommentStart start="/\*" end="\*/" extend contains=glslTodo @@ -39,7 +39,7 @@ syn match glslFloat "\.\d\+\([eE][+-]\=\d\+\)\=" syn match glslFloat "\d\+[eE][+-]\=\d\+" " Types -syn keyword glslStructure struct +syn keyword glslStructure struct syn keyword glslType atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 syn keyword glslType dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 syn keyword glslType dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray @@ -62,7 +62,7 @@ syn keyword glslType uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimag syn keyword glslType uimageCubeArray uint usampler1D usampler1DArray usampler2D syn keyword glslType usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect syn keyword glslType usampler3D usamplerBuffer usamplerCube usamplerCubeArray -syn keyword glslType uvec2 uvec3 uvec4 vec2 vec3 vec4 void +syn keyword glslType uvec2 uvec3 uvec4 vec2 vec3 vec4 void " Qualifiers syn keyword glslQualifier precision invariant -- cgit v1.2.3 From 018795a69d99269af03d8e4d1aa9f57a0cbd6eb4 Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:08:30 +0000 Subject: Don't highlight numbers at the end of identifiers. --- syntax/glsl.vim | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index 7e36450..d711cfb 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -85,6 +85,10 @@ syn keyword glslQualifier triangle_strip triangles triangles_adjacency unifor syn keyword glslQualifier coherent volatile restrict readonly writeonly +" This prevents numbers at ends of identifies from being highlighted as +" numbers. +syn match glslIdentifier display "\I\i*" + hi def link glslConditional Conditional hi def link glslRepeat Repeat hi def link glslStatement Statement -- cgit v1.2.3 From db6d9214f1bb2892fcef18f8de5c75b2359c64a4 Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:10:12 +0000 Subject: Highlight vector swizzles. --- syntax/glsl.vim | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index d711cfb..9a1c6e2 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -38,6 +38,11 @@ syn match glslFloat "\d\+\.\([eE][+-]\=\d\+\)\=" syn match glslFloat "\.\d\+\([eE][+-]\=\d\+\)\=" syn match glslFloat "\d\+[eE][+-]\=\d\+" +" Swizzles +syn match glslSwizzle display /\.[xyzw]\{1,4\}\>/ +syn match glslSwizzle display /\.[rgba]\{1,4\}\>/ +syn match glslSwizzle display /\.[stpq]\{1,4\}\>/ + " Types syn keyword glslStructure struct syn keyword glslType atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 @@ -110,6 +115,7 @@ hi def link glslFloat Float hi def link glslStructure Structure hi def link glslType Type hi def link glslQualifier StorageClass +hi def link glslSwizzle SpecialChar let b:current_syntax = "glsl" -- cgit v1.2.3 From 64d8a317a6fb55b49f6bb8f6999c89878720ec80 Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:13:58 +0000 Subject: Highlight built-in functions. --- syntax/glsl.vim | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index 9a1c6e2..7712184 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -89,6 +89,75 @@ syn keyword glslQualifier row_major sample shared smooth std140 stream syn keyword glslQualifier triangle_strip triangles triangles_adjacency uniform varying syn keyword glslQualifier coherent volatile restrict readonly writeonly +" These functions were taken from the 4.20 version of the GLSL specification, +" found at +" http://www.opengl.org/registry/doc/GLSLangSpec.4.20.11.clean.pdf + +" 8.1 Angle and Trigonometry Functions +syn keyword glslBuiltinFunction radians degrees sin cos tan asin acos atan +syn keyword glslBuiltinFunction sinh cosh tanh asinh acosh atanh +" 8.2 Exponential Functions +syn keyword glslBuiltinFunction pow exp log exp2 log2 sqrt inversesqrt +" 8.3 Common Functions +syn keyword glslBuiltinFunction abs sign floor trunc round roundEven ceil +syn keyword glslBuiltinFunction fract mod modf min max clamp mix step +syn keyword glslBuiltinFunction smoothstep isnan isinf floatBitsToInt +syn keyword glslBuiltinFunction floatBitsToUint intBitsToFloat uintBitsToFloat +syn keyword glslBuiltinFunction fma frexp ldexp +" 8.4 Floating-Point Pack and Unpack Functions +syn keyword glslBuiltinFunction packUnorm2x16 packSnorm2x16 packUnorm4x8 +syn keyword glslBuiltinFunction packSnorm4x8 unpackUnorm2x16 unpackSnorm2x16 +syn keyword glslBuiltinFunction unpackUnorm4x8 unpackSnorm4x8 packDouble2x32 +syn keyword glslBuiltinFunction unpackDouble2x32 packHalf2x16 unpackHalf2x16 +" 8.5 Geometric Functions +syn keyword glslBuiltinFunction length distance dot cross normalize faceforward +syn keyword glslBuiltinFunction reflect refract +" 8.6 Matrix Functions +syn keyword glslBuiltinFunction matrixCompMult outerProduct transpose +syn keyword glslBuiltinFunction determinant +syn keyword glslBuiltinFunction inverse +" 8.7 Vector Relational Functions +syn keyword glslBuiltinFunction lessThan lessThanEqual greaterThan +syn keyword glslBuiltinFunction greaterThanEqual +syn keyword glslBuiltinFunction equal notEqual any all not +" 8.8 Integer Functions +syn keyword glslBuiltinFunction uaddCarry usubBorrow umulExtended imulExtended +syn keyword glslBuiltinFunction bitfieldExtract bitfieldInsert bitfieldReverse +syn keyword glslBuiltinFunction bitCount findLSB findMSB +" 8.9.1 Texture Query Functions +syn keyword glslBuiltinFunction textureSize textureQueryLod +" 8.9.2 Texel Lookup Functions +syn keyword glslBuiltinFunction texture textureProj textureLod textureOffset +syn keyword glslBuiltinFunction texelFetch texelFetchOffset textureProjOffset +syn keyword glslBuiltinFunction textureLodOffset textureProjLod +syn keyword glslBuiltinFunction textureProjLodOffset textureGrad +syn keyword glslBuiltinFunction textureGradOffset textureProjGrad +syn keyword glslBuiltinFunction textureProjGradOffset +" 8.9.3 Texture Gather Instructions +syn keyword glslBuiltinFunction textureGather textureGatherOffset +syn keyword glslBuiltinFunction textureGatherOffsets +" 8.10 Atomic-Counter Functions +syn keyword glslBuiltinFunction atomicCounterIncrement atomicCounterDecrement +syn keyword glslBuiltinFunction atomicCounter +" 8.11 Image Functions +syn keyword glslBuiltinFunction imageLoad imageStore imageAtomicAdd +syn keyword glslBuiltinFunction imageAtomicMin imageAtomicMax imageAtomicAnd +syn keyword glslBuiltinFunction imageAtomicOr imageAtomicXor +syn keyword glslBuiltinFunction imageAtomicExchange imageAtomicCompSwap +" 8.12.1 Derivative Functions +syn keyword glslBuiltinFunction dFdx dFdy fwidth +" 8.12.2 Interpolation Functions +syn keyword glslBuiltinFunction interpolateAtCentroid interpolateAtSample +syn keyword glslBuiltinFunction interpolateAtOffset +" 8.13 Noise Functions +syn keyword glslBuiltinFunction noise1 noise2 noise3 noise4 +" 8.14 Geometry Shader Functions +syn keyword glslBuiltinFunction EmitStreamVertex EndStreamPrimitive EmitVertex +syn keyword glslBuiltinFunction EndPrimitive +" 8.15 Shader Invocation Control Functions +syn keyword glslBuiltinFunction barrier +" 8.16 Shader Memory Control Function +syn keyword glslBuiltinFunction memoryBarrier " This prevents numbers at ends of identifies from being highlighted as " numbers. @@ -115,6 +184,7 @@ hi def link glslFloat Float hi def link glslStructure Structure hi def link glslType Type hi def link glslQualifier StorageClass +hi def link glslBuiltinFunction Function hi def link glslSwizzle SpecialChar let b:current_syntax = "glsl" -- cgit v1.2.3 From 7c106d49b97505ff627ce1f1580b94e08f390699 Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:32:57 +0000 Subject: Add 'display' to syntax matches where appropriate. --- syntax/glsl.vim | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index 7712184..6c32af7 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -28,15 +28,15 @@ syn region glslPreProc start="^\s*#\s*\(error\|pragma\|extension\|v syn keyword glslBoolean true false " Integer Numbers -syn match glslDecimalInt "\(0\|[1-9]\d*\)" -syn match glslOctalInt "0\o\+" -syn match glslHexInt "0[xX]\x\+" +syn match glslDecimalInt display "\(0\|[1-9]\d*\)" +syn match glslOctalInt display "0\o\+" +syn match glslHexInt display "0[xX]\x\+" " Float Numbers -syn match glslFloat "\d\+\.\d\+\([eE][+-]\=\d\+\)\=" -syn match glslFloat "\d\+\.\([eE][+-]\=\d\+\)\=" -syn match glslFloat "\.\d\+\([eE][+-]\=\d\+\)\=" -syn match glslFloat "\d\+[eE][+-]\=\d\+" +syn match glslFloat display "\d\+\.\d\+\([eE][+-]\=\d\+\)\=" +syn match glslFloat display "\d\+\.\([eE][+-]\=\d\+\)\=" +syn match glslFloat display "\.\d\+\([eE][+-]\=\d\+\)\=" +syn match glslFloat display "\d\+[eE][+-]\=\d\+" " Swizzles syn match glslSwizzle display /\.[xyzw]\{1,4\}\>/ -- cgit v1.2.3 From 135510dc18d5cf0e3b2ce4b395517fc15e7b9027 Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:33:30 +0000 Subject: Highlight built-in variables. --- syntax/glsl.vim | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index 6c32af7..5aae11b 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -159,6 +159,21 @@ syn keyword glslBuiltinFunction barrier " 8.16 Shader Memory Control Function syn keyword glslBuiltinFunction memoryBarrier +" 7.1 Built-in Variables +syn keyword glslBuiltinVariable gl_VertexID gl_InstanceID gl_Position +syn keyword glslBuiltinVariable gl_PointSize gl_ClipDistance gl_in +syn keyword glslBuiltinVariable gl_PrimitiveIDIn gl_InvocationID +syn keyword glslBuiltinVariable gl_PrimitiveID gl_Layer gl_ViewportIndex +syn keyword glslBuiltinVariable gl_PatchVerticesIn gl_out gl_TessLevelOuter +syn keyword glslBuiltinVariable gl_TessLevelInner gl_TessCoord gl_FragCoord +syn keyword glslBuiltinVariable gl_FrontFacing gl_PointCoord gl_SampleID +syn keyword glslBuiltinVariable gl_SamplePosition gl_SampleMaskIn gl_FragDepth +syn keyword glslBuiltinVariable gl_SampleMask +" 7.4 Built-In Uniform State +" TODO Perhaps add highlighting for gl_DepthRange.near, or for +" gl_DepthRangeParameters. +syn keyword glslBuiltinVariable gl_DepthRange gl_NumSamples + " This prevents numbers at ends of identifies from being highlighted as " numbers. syn match glslIdentifier display "\I\i*" @@ -185,6 +200,7 @@ hi def link glslStructure Structure hi def link glslType Type hi def link glslQualifier StorageClass hi def link glslBuiltinFunction Function +hi def link glslBuiltinVariable Identifier hi def link glslSwizzle SpecialChar let b:current_syntax = "glsl" -- cgit v1.2.3 From 4def223390c0504279f18904717b0dc51f6552aa Mon Sep 17 00:00:00 2001 From: Robin Kaup Date: Wed, 21 Nov 2012 09:33:55 +0000 Subject: Highlight built-in constants. --- syntax/glsl.vim | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'syntax/glsl.vim') diff --git a/syntax/glsl.vim b/syntax/glsl.vim index 5aae11b..ace8d36 100644 --- a/syntax/glsl.vim +++ b/syntax/glsl.vim @@ -174,6 +174,61 @@ syn keyword glslBuiltinVariable gl_SampleMask " gl_DepthRangeParameters. syn keyword glslBuiltinVariable gl_DepthRange gl_NumSamples +" 7.3 Built-in Constants +syn keyword glslBuiltinConstant gl_MaxVertexAttribs gl_MaxUniformComponents +syn keyword glslBuiltinConstant gl_MaxVaryingComponents +syn keyword glslBuiltinConstant gl_MaxVertexOutputComponents +syn keyword glslBuiltinConstant gl_MaxGeometryInputComponents +syn keyword glslBuiltinConstant gl_MaxGeometryOutputComponents +syn keyword glslBuiltinConstant gl_MaxFragmentInputComponents +syn keyword glslBuiltinConstant gl_MaxVertexTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxCombinedTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxTextureImageUnits gl_MaxImageUnits +syn keyword glslBuiltinConstant gl_MaxCombinedImageUnitsAndFragmentOutputs +syn keyword glslBuiltinConstant gl_MaxImageSamples gl_MaxVertexImageUniforms +syn keyword glslBuiltinConstant gl_MaxTessControlImageUniforms +syn keyword glslBuiltinConstant gl_MaxTessEvaluationImageUniforms +syn keyword glslBuiltinConstant gl_MaxGeometryImageUniforms +syn keyword glslBuiltinConstant gl_MaxFragmentImageUniforms +syn keyword glslBuiltinConstant gl_MaxCombinedImageUniforms +syn keyword glslBuiltinConstant gl_MaxFragmentUniformComponents +syn keyword glslBuiltinConstant gl_MaxDrawBuffers gl_MaxClipDistances +syn keyword glslBuiltinConstant gl_MaxGeometryTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxGeometryOutputVertices +syn keyword glslBuiltinConstant gl_MaxGeometryTotalOutputComponents +syn keyword glslBuiltinConstant gl_MaxGeometryUniformComponents +syn keyword glslBuiltinConstant gl_MaxGeometryVaryingComponents +syn keyword glslBuiltinConstant gl_MaxTessControlInputComponents +syn keyword glslBuiltinConstant gl_MaxTessControlOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessControlTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxTessControlUniformComponents +syn keyword glslBuiltinConstant gl_MaxTessControlTotalOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationInputComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxTessEvaluationUniformComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationTotalOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessPatchComponents gl_MaxPatchVertices +syn keyword glslBuiltinConstant gl_MaxTessGenLevel +syn keyword glslBuiltinConstant gl_MaxViewports +syn keyword glslBuiltinConstant gl_MaxVertexUniformVectors +syn keyword glslBuiltinConstant gl_MaxFragmentUniformVectors +syn keyword glslBuiltinConstant gl_MaxVaryingVectors +syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounters +syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounters +syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounters +syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounters +syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounters +syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounters +syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxAtomicCounterBufferSize +syn keyword glslBuiltinConstant gl_MinProgramTexelOffset +syn keyword glslBuiltinConstant gl_MaxProgramTexelOffset + " This prevents numbers at ends of identifies from being highlighted as " numbers. syn match glslIdentifier display "\I\i*" @@ -199,6 +254,7 @@ hi def link glslFloat Float hi def link glslStructure Structure hi def link glslType Type hi def link glslQualifier StorageClass +hi def link glslBuiltinConstant Constant hi def link glslBuiltinFunction Function hi def link glslBuiltinVariable Identifier hi def link glslSwizzle SpecialChar -- cgit v1.2.3