Skip to content

RedCMD/JSON-Embedded-Languages

Repository files navigation

JSON Embedded Languages

Syntax Highlighting for embedded languages within JSON and JSONC files.
It does so by overriding the default JSON and JSONC languages and assigning a scopeName to each object with the form .meta.embedded.objectkey..
Then using multiple injection grammars that target those scopeNames and inject specific languages into it.

Features

  • ShellScript within "scripts" for package.json (JSON)
    Example package.json/scripts

  • when-clause-contexts within "when" for package.json (JSON)
    Example package.json/when

  • JSON escaped JavaScript Regular Expressions within "wordPattern", "folding", "onEnterRules" and "indentationRules" for language-configuration.json (JSONC)
    Example language-configuration.json

  • Snippets, Regex and Markdown within "defaultSnippets", "pattern" and "markdownDescription" for .schema.json (JSON)
    Recommend the Snippets Snippets extension
    Example schema.json

Known Issues

This extension targets every JSON and JSONC file, not just package.json.
There will be false positives and false negatives.
Please report any you come across.

VSCode TextMate injections are rather slow.
It may take longer for documents to fully syntax highlight.
The regexp "injectionSelector" is almost 10,000 characters long.

For more information

TODO:

  • globs/"filenamePatterns"
  • Improve performance