Utility to generate a new language configuration file for VS Code by extending an existing one.
npm install vscode-extend-languageCurrently, it is not possible to build a new language as an extension of an existing one, the language-configuration.json file must be self-contained. This can lead to tedious maintenance as changes to the base language have to be forwarded manually. This package aims at helping language developers.
Assume you wand to derive a new language configuration from A-language-configuration.json, you just need to define a file let us say B.extension.language-configuration.json containing
``json", "
{
"extends": "path/to/A-language-configuration.json",
"overrides": {
"comments": {
"blockComment": [
""
]
},
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"],
["$", "$"],
[""],`
["_", "_"],
["", ""]
],
},
"folding": {
"offSide": true,
"markers": {
"start": "^\\s",
"end": "^\\s"
}
}
}
- extends means that language B is based on the language configuration of language A. path/to/A-language-configuration.json can either be a relative local path to A-language-configuration.json or an url.overrides
- The section allows to replace some settings of A-language-configuration.json by their new values in B.overrides
- Everything outside the section is added to the B configuration. If the key already exists in A-language-configuration.json, it must be an array and in this case their contents are concatenated.
To obtain the self-contained language configuration file for B, B.language-configuration.json, use
`js
const vel = require('vscode-extend-language')
vel.expandConfigurationFile('./B.extension.language-configuration.json', './B.language-configuration.json')
``