Awesome
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. Thecontributes.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 thebegin
rule fromsuperjs
to the identifier of your target language. This identifier is what people will write in markdown. - In
syntaxes/codeblock.json
, change the innerinclude
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 thecontentName
from usingsuperjs
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 thescopeName
from usingsuperjs
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 thescopeName
to match the scopeName from step 4. - In
package.json
, changeembeddedLanguages
to map between thecontentName
from step 3 and the VS Code identifier for your language. - In
package.json
, change theid
from usingsuperjs-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 thelanguage
from usingsuperjs-injection
to using an identifier for your grammar injection. This identifier has to match the identifier from step 7.