Description
Inspired by TSLint's ability to extend configuration files, it would be nice if .vscode/settings.json
could behave the same way.
So if I have some global settings set up:
~/example-repo/.vscode/my-company-settings.json
:
{
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.formatOnSave": false
}
I can use them in another file, without having to duplicate the settings:
~/example-repo/my-project/.vscode/settings.json
:
{
"extends": "../../.vscode/my-company-settings.json",
"editor.formatOnSave": true,
"editor.fontLigatures": true
}
And the computed settings for ~/example-repo/my-project/.vscode/settings.json
would be:
{
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.fontLigatures": true
}
Scenario:
Multi-root workspace doesn't solve this for our use case. We have a bunch of npm modules each in their own git repository. We have a package which contains our shared tsconfig.json and tslint.json settings that all the other packages include with extends. We don't use a multi-root workspace since the idea is that people can clone the specific package(s) they need to work on. Every repository contains the exact same .vscode directory which is essentially copy&pasted all over the place. Maintaining the .vscode settings for the projects is "not pretty" compared to the tsconfig.json and tslint.json which only require the settings package to be updated with for example yarn upgrade.