OneMore Markdown fenced code block syntax highlight
专用于支持 Markdown fenced code block 语法高亮。如果哪天官方支持了,就干掉这个库。
in vec4 position;
uniform mat4 matrix;
void main() {
gl_Position = matrix * position;
}
half3 ColorGrading(half3 color)
{
color *= _PostExposure;
float3 colorLutSpace = saturate(LUT_SPACE_ENCODE(color.rgb));
color = ApplyLut2D(TEXTURE2D_PARAM(_Lut2D, sampler_Lut2D), colorLutSpace, _Lut2D_Params);
return color;
}
// glsl 的代码,先顶着
in vec4 position;
uniform mat4 matrix;
void main() {
gl_Position = matrix * position;
}
Shader "Demo" {
Properties{
_MainTex("Base (RGB)", 2D) = "white" {}
}
HLSLINCLUDE
TEXTURE2D_SAMPLER2D(_MainTex, sampler_MainTex);
half4 _MainTex_TexelSize;
ENDHLSL
}
VSCode Markdown Fenced Code Block Grammar Injection Example
Demonstrates how an extension can inject support for a new grammar in VSCode's builtin markdown grammar for fenced code blocks. This extension injects an alias for JavaScript called superjs so support editor highlighting of blocks that look like:
```superjs
someJsCode
```
Structure
package.json - VS Code extension manifest file. The contributes.grammars section registers the injected grammar.
syntaxes/codeblock.json - The injected grammar itself
How to modify this repo to support a new language in fenced code blocks
- In
syntaxes/codeblock.json, change the begin rule from superjs to the identifier of your target language. This identifier is what people will write in markdown.
- In
syntaxes/codeblock.json, change the inner include rule from "source.js" to the scope of your target language. This scope can be found by looking at the target language's grammar.
- In
syntaxes/codeblock.json, change the contentName from using superjs to using a identifier for your language. This identifier may only contain letters but does not have to match the identifier from step 1.
- In
syntaxes/codeblock.json, change the scopeName from using superjs to using a identifier for your language. This identifier may only contain letters but does not have to match the identifier from step 1.
- In
package.json, change the scopeName to match the scopeName from step 4.
- In
package.json, change embeddedLanguages to map between the contentName from step 3 and the VS Code identifier for your language.
- In
package.json, change the id from using superjs-injection to using an identifier for your grammar injection. This identifier does not have to match the identifier from step 1.
- In
package.json, change the language from using superjs-injection to using an identifier for your grammar injection. This identifier has to match the identifier from step 7.