IssueRaiser

Add ability to extend from other settings files

Inspired by TSLint's ability to [extend](https://palantir.github.io/tslint/2016/03/31/sharable-configurations-rules.html) 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`: ```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`: ```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: ```json { "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 tsl

Posted by maxdeviant on Nov 22, 2016, 7:27 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.4,500 issues0 comments

github (Software)

Add ability to extend from other settings files

maxdeviantNov 22, 2016, 7:27 PM

Inspired by TSLint's ability to [extend](https://palantir.github.io/tslint/2016/03/31/sharable-configurations-rules.html) 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`: ```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`: ```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: ```json { "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 tsl

Comments (0)

No comments yet. Start the discussion.

Comment on this issue