| 1 |
{ |
| 2 |
"information_for_contributors": [ |
| 3 |
"This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/shaderlab.json", |
| 4 |
"If you want to provide a fix or improvement, please create a pull request against the original repository.", |
| 5 |
"Once accepted there, we are happy to receive an update request." |
| 6 |
], |
| 7 |
"version": "https://github.com/tgjones/shaders-tmLanguage/commit/c72c8b39380ba5a86c58ceed053b5d965ebf38b3", |
| 8 |
"name": "shaderlab", |
| 9 |
"scopeName": "source.shaderlab", |
| 10 |
"patterns": [ |
| 11 |
{ |
| 12 |
"name": "comment.line.double-slash.shaderlab", |
| 13 |
"begin": "//", |
| 14 |
"end": "$" |
| 15 |
}, |
| 16 |
{ |
| 17 |
"name": "support.type.basic.shaderlab", |
| 18 |
"match": "\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b" |
| 19 |
}, |
| 20 |
{ |
| 21 |
"include": "#numbers" |
| 22 |
}, |
| 23 |
{ |
| 24 |
"name": "storage.type.structure.shaderlab", |
| 25 |
"match": "\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b" |
| 26 |
}, |
| 27 |
{ |
| 28 |
"name": "support.type.propertyname.shaderlab", |
| 29 |
"match": "\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b" |
| 30 |
}, |
| 31 |
{ |
| 32 |
"name": "support.constant.property-value.shaderlab", |
| 33 |
"match": "\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b" |
| 34 |
}, |
| 35 |
{ |
| 36 |
"name": "support.constant.property-value.comparisonfunction.shaderlab", |
| 37 |
"match": "\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b" |
| 38 |
}, |
| 39 |
{ |
| 40 |
"name": "support.constant.property-value.stenciloperation.shaderlab", |
| 41 |
"match": "\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b" |
| 42 |
}, |
| 43 |
{ |
| 44 |
"name": "support.constant.property-value.texturecombiners.shaderlab", |
| 45 |
"match": "\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b" |
| 46 |
}, |
| 47 |
{ |
| 48 |
"name": "support.constant.property-value.fog.shaderlab", |
| 49 |
"match": "\\b(?i:Global|Linear|Exp2|Exp)\\b" |
| 50 |
}, |
| 51 |
{ |
| 52 |
"name": "support.constant.property-value.bindchannels.shaderlab", |
| 53 |
"match": "\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b" |
| 54 |
}, |
| 55 |
{ |
| 56 |
"name": "support.constant.property-value.blendoperations.shaderlab", |
| 57 |
"match": "\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b" |
| 58 |
}, |
| 59 |
{ |
| 60 |
"name": "support.constant.property-value.blendfactors.shaderlab", |
| 61 |
"match": "\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b" |
| 62 |
}, |
| 63 |
{ |
| 64 |
"name": "support.variable.reference.shaderlab", |
| 65 |
"match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")" |
| 66 |
}, |
| 67 |
{ |
| 68 |
"name": "meta.attribute.shaderlab", |
| 69 |
"begin": "(\\[)", |
| 70 |
"end": "(\\])", |
| 71 |
"patterns": [ |
| 72 |
{ |
| 73 |
"name": "support.type.attributename.shaderlab", |
| 74 |
"match": "\\G([a-zA-Z]+)\\b" |
| 75 |
}, |
| 76 |
{ |
| 77 |
"include": "#numbers" |
| 78 |
} |
| 79 |
] |
| 80 |
}, |
| 81 |
{ |
| 82 |
"name": "support.variable.declaration.shaderlab", |
| 83 |
"match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(" |
| 84 |
}, |
| 85 |
{ |
| 86 |
"name": "meta.cgblock", |
| 87 |
"begin": "\\b(CGPROGRAM|CGINCLUDE)\\b", |
| 88 |
"beginCaptures": { |
| 89 |
"1": { |
| 90 |
"name": "keyword.other" |
| 91 |
} |
| 92 |
}, |
| 93 |
"end": "\\b(ENDCG)\\b", |
| 94 |
"endCaptures": { |
| 95 |
"1": { |
| 96 |
"name": "keyword.other" |
| 97 |
} |
| 98 |
}, |
| 99 |
"patterns": [ |
| 100 |
{ |
| 101 |
"include": "#hlsl-embedded" |
| 102 |
} |
| 103 |
] |
| 104 |
}, |
| 105 |
{ |
| 106 |
"name": "meta.hlslblock", |
| 107 |
"begin": "\\b(HLSLPROGRAM|HLSLINCLUDE)\\b", |
| 108 |
"beginCaptures": { |
| 109 |
"1": { |
| 110 |
"name": "keyword.other" |
| 111 |
} |
| 112 |
}, |
| 113 |
"end": "\\b(ENDHLSL)\\b", |
| 114 |
"endCaptures": { |
| 115 |
"1": { |
| 116 |
"name": "keyword.other" |
| 117 |
} |
| 118 |
}, |
| 119 |
"patterns": [ |
| 120 |
{ |
| 121 |
"include": "#hlsl-embedded" |
| 122 |
} |
| 123 |
] |
| 124 |
}, |
| 125 |
{ |
| 126 |
"name": "string.quoted.double.shaderlab", |
| 127 |
"begin": "\"", |
| 128 |
"end": "\"" |
| 129 |
} |
| 130 |
], |
| 131 |
"repository": { |
| 132 |
"numbers": { |
| 133 |
"patterns": [ |
| 134 |
{ |
| 135 |
"name": "constant.numeric.shaderlab", |
| 136 |
"match": "\\b([0-9]+\\.?[0-9]*)\\b" |
| 137 |
} |
| 138 |
] |
| 139 |
}, |
| 140 |
"hlsl-embedded": { |
| 141 |
"patterns": [ |
| 142 |
{ |
| 143 |
"include": "source.hlsl" |
| 144 |
}, |
| 145 |
{ |
| 146 |
"name": "storage.type.basic.shaderlab", |
| 147 |
"match": "\\b(fixed([1-4](x[1-4])?)?)\\b" |
| 148 |
}, |
| 149 |
{ |
| 150 |
"name": "support.variable.transformations.shaderlab", |
| 151 |
"match": "\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b" |
| 152 |
}, |
| 153 |
{ |
| 154 |
"name": "support.variable.camera.shaderlab", |
| 155 |
"match": "\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b" |
| 156 |
}, |
| 157 |
{ |
| 158 |
"name": "support.variable.time.shaderlab", |
| 159 |
"match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b" |
| 160 |
}, |
| 161 |
{ |
| 162 |
"name": "support.variable.lighting.shaderlab", |
| 163 |
"match": "\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b" |
| 164 |
}, |
| 165 |
{ |
| 166 |
"name": "support.variable.fog.shaderlab", |
| 167 |
"match": "\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b" |
| 168 |
}, |
| 169 |
{ |
| 170 |
"name": "support.variable.various.shaderlab", |
| 171 |
"match": "\\b(unity_LODFade)\\b" |
| 172 |
}, |
| 173 |
{ |
| 174 |
"name": "support.variable.preprocessor.targetplatform.shaderlab", |
| 175 |
"match": "\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b" |
| 176 |
}, |
| 177 |
{ |
| 178 |
"name": "support.variable.preprocessor.targetmodel.shaderlab", |
| 179 |
"match": "\\b(SHADER_TARGET)\\b" |
| 180 |
}, |
| 181 |
{ |
| 182 |
"name": "support.variable.preprocessor.unityversion.shaderlab", |
| 183 |
"match": "\\b(UNITY_VERSION)\\b" |
| 184 |
}, |
| 185 |
{ |
| 186 |
"name": "support.variable.preprocessor.platformdifference.shaderlab", |
| 187 |
"match": "\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b" |
| 188 |
}, |
| 189 |
{ |
| 190 |
"name": "support.variable.preprocessor.texture2D.shaderlab", |
| 191 |
"match": "\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b" |
| 192 |
}, |
| 193 |
{ |
| 194 |
"name": "support.class.structures.shaderlab", |
| 195 |
"match": "\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b" |
| 196 |
}, |
| 197 |
{ |
| 198 |
"name": "support.class.surface.shaderlab", |
| 199 |
"match": "\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b" |
| 200 |
} |
| 201 |
] |
| 202 |
} |
| 203 |
} |
| 204 |
} |
| 205 |
|