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.
Inspired by TSLint's ability to extend configuration files, it would be nice if
.vscode/settings.jsoncould 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.jsonwould 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.