From a734c13778abe079ae5c331afc1e225167e550db Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 20 Feb 2017 11:23:08 +0100 Subject: [PATCH] [shaderlab/hlsl] Add update scripts, minor fixes to OSSREADME (for #20129) --- extensions/hlsl/OSSREADME.json | 5 +- extensions/hlsl/package.json | 3 + extensions/hlsl/syntaxes/shaderlab.json | 175 +++++++++++++++++++ extensions/shaderlab/OSSREADME.json | 5 +- extensions/shaderlab/package.json | 38 ++-- extensions/shaderlab/syntaxes/shaderlab.json | 5 +- 6 files changed, 211 insertions(+), 20 deletions(-) create mode 100644 extensions/hlsl/syntaxes/shaderlab.json diff --git a/extensions/hlsl/OSSREADME.json b/extensions/hlsl/OSSREADME.json index 1d293fc877a..5acab345317 100644 --- a/extensions/hlsl/OSSREADME.json +++ b/extensions/hlsl/OSSREADME.json @@ -1,9 +1,8 @@ // ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: [{ - "name": "shaders-tmLanguage-hlsl", + "name": "shaders-tmLanguage", "version": "0.1.0", "license": "MIT", - "repositoryURL": "https://github.com/tgjones/shaders-tmLanguage", - "description": "The file syntaxes/hlsl.json was included from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/hlsl.json." + "repositoryURL": "https://github.com/tgjones/shaders-tmLanguage" }] diff --git a/extensions/hlsl/package.json b/extensions/hlsl/package.json index d5147184066..c2e48d4ee43 100644 --- a/extensions/hlsl/package.json +++ b/extensions/hlsl/package.json @@ -3,6 +3,9 @@ "version": "0.1.0", "publisher": "vscode", "engines": { "vscode": "*" }, + "scripts": { + "update-grammar": "node ../../build/npm/update-grammar.js tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.json" + }, "contributes": { "languages": [{ "id": "hlsl", diff --git a/extensions/hlsl/syntaxes/shaderlab.json b/extensions/hlsl/syntaxes/shaderlab.json new file mode 100644 index 00000000000..aad10f3b35a --- /dev/null +++ b/extensions/hlsl/syntaxes/shaderlab.json @@ -0,0 +1,175 @@ +{ + "scopeName": "source.shaderlab", + "name": "ShaderLab", + "fileTypes": [ + "shader" + ], + "patterns": [ + { + "name": "comment.line.double-slash.shaderlab", + "begin": "//", + "end": "$" + }, + { + "name": "support.type.basic.shaderlab", + "match": "\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b" + }, + { + "include": "#numbers" + }, + { + "name": "storage.type.structure.shaderlab", + "match": "\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b" + }, + { + "name": "support.type.propertyname.shaderlab", + "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" + }, + { + "name": "support.constant.property-value.shaderlab", + "match": "\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b" + }, + { + "name": "support.constant.property-value.comparisonfunction.shaderlab", + "match": "\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b" + }, + { + "name": "support.constant.property-value.stenciloperation.shaderlab", + "match": "\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b" + }, + { + "name": "support.constant.property-value.texturecombiners.shaderlab", + "match": "\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b" + }, + { + "name": "support.constant.property-value.fog.shaderlab", + "match": "\\b(?i:Global|Linear|Exp2|Exp)\\b" + }, + { + "name": "support.constant.property-value.bindchannels.shaderlab", + "match": "\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b" + }, + { + "name": "support.constant.property-value.blendoperations.shaderlab", + "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" + }, + { + "name": "support.constant.property-value.blendfactors.shaderlab", + "match": "\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b" + }, + { + "name": "support.variable.reference.shaderlab", + "match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")" + }, + { + "name": "meta.attribute.shaderlab", + "begin": "(\\[)", + "end": "(\\])", + "patterns": [ + { + "name": "support.type.attributename.shaderlab", + "match": "\\G([a-zA-Z]+)\\b" + }, + { + "include": "#numbers" + } + ] + }, + { + "name": "support.variable.declaration.shaderlab", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(" + }, + { + "name": "meta.cgblock", + "begin": "\\b(CGPROGRAM|CGINCLUDE)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other" + } + }, + "end": "\\b(ENDCG)\\b", + "endCaptures": { + "1": { + "name": "keyword.other" + } + }, + "patterns": [ + { + "include": "source.hlsl" + }, + { + "name": "storage.type.basic.shaderlab", + "match": "\\b(fixed([1-4](x[1-4])?)?)\\b" + }, + { + "name": "support.variable.transformations.shaderlab", + "match": "\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_IT_MV|_Object2World|_World2Object)\\b" + }, + { + "name": "support.variable.camera.shaderlab", + "match": "\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b" + }, + { + "name": "support.variable.time.shaderlab", + "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b" + }, + { + "name": "support.variable.lighting.shaderlab", + "match": "\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b" + }, + { + "name": "support.variable.fog.shaderlab", + "match": "\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b" + }, + { + "name": "support.variable.various.shaderlab", + "match": "\\b(unity_LODFade)\\b" + }, + { + "name": "support.variable.preprocessor.targetplatform.shaderlab", + "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" + }, + { + "name": "support.variable.preprocessor.targetmodel.shaderlab", + "match": "\\b(SHADER_TARGET)\\b" + }, + { + "name": "support.variable.preprocessor.unityversion.shaderlab", + "match": "\\b(UNITY_VERSION)\\b" + }, + { + "name": "support.variable.preprocessor.platformdifference.shaderlab", + "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" + }, + { + "name": "support.variable.preprocessor.texture2D.shaderlab", + "match": "\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b" + }, + { + "name": "support.class.structures.shaderlab", + "match": "\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b" + }, + { + "name": "support.class.surface.shaderlab", + "match": "\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b" + } + ] + }, + { + "name": "string.quoted.double.shaderlab", + "begin": "\"", + "end": "\"" + } + ], + "repository": { + "numbers": { + "patterns": [ + { + "name": "constant.numeric.shaderlab", + "match": "\\b([0-9]+\\.?[0-9]*)\\b" + } + ] + } + }, + "version": "https://github.com/tgjones/shaders-tmLanguage/commit/cd1ef40f549f9ce2b9e6b73498688de114a85382" +} \ No newline at end of file diff --git a/extensions/shaderlab/OSSREADME.json b/extensions/shaderlab/OSSREADME.json index c7660b988d0..5acab345317 100644 --- a/extensions/shaderlab/OSSREADME.json +++ b/extensions/shaderlab/OSSREADME.json @@ -1,9 +1,8 @@ // ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: [{ - "name": "shaders-tmLanguage-shaderlab", + "name": "shaders-tmLanguage", "version": "0.1.0", "license": "MIT", - "repositoryURL": "https://github.com/tgjones/shaders-tmLanguage", - "description": "The file syntaxes/shaderlab.json was included from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/shaderlab.json." + "repositoryURL": "https://github.com/tgjones/shaders-tmLanguage" }] diff --git a/extensions/shaderlab/package.json b/extensions/shaderlab/package.json index 71dcb0a6445..a648a353cb0 100644 --- a/extensions/shaderlab/package.json +++ b/extensions/shaderlab/package.json @@ -2,18 +2,32 @@ "name": "shaderlab", "version": "0.1.0", "publisher": "vscode", - "engines": { "vscode": "*" }, + "engines": { + "vscode": "*" + }, + "scripts": { + "update-grammar": "node ../../build/npm/update-grammar.js tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.json" + }, "contributes": { - "languages": [{ - "id": "shaderlab", - "extensions": [".shader"], - "aliases": ["ShaderLab", "shaderlab"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "shaderlab", - "path": "./syntaxes/shaderlab.json", - "scopeName":"source.shaderlab" - }] + "languages": [ + { + "id": "shaderlab", + "extensions": [ + ".shader" + ], + "aliases": [ + "ShaderLab", + "shaderlab" + ], + "configuration": "./language-configuration.json" + } + ], + "grammars": [ + { + "language": "shaderlab", + "path": "./syntaxes/shaderlab.json", + "scopeName": "source.shaderlab" + } + ] } } \ No newline at end of file diff --git a/extensions/shaderlab/syntaxes/shaderlab.json b/extensions/shaderlab/syntaxes/shaderlab.json index 4eea24fad6c..aad10f3b35a 100644 --- a/extensions/shaderlab/syntaxes/shaderlab.json +++ b/extensions/shaderlab/syntaxes/shaderlab.json @@ -97,7 +97,7 @@ { "include": "source.hlsl" }, - { + { "name": "storage.type.basic.shaderlab", "match": "\\b(fixed([1-4](x[1-4])?)?)\\b" }, @@ -170,5 +170,6 @@ } ] } - } + }, + "version": "https://github.com/tgjones/shaders-tmLanguage/commit/cd1ef40f549f9ce2b9e6b73498688de114a85382" } \ No newline at end of file -- GitLab