Improve settings editor by adding better visibility to defaults, user and workspace settings so the user can easily tell which is currently being used. #136068
Labels
feature-request
Request for new features or functionality
settings-editor
VS Code settings editor issues
Milestone
Currently the settings editor lets me toggle between workspace and user settings. I can't tell if a value is the default, I can't tell what is overriding what.
Make all four sources of settings editable in the settings editor.
Currently you can choose to edit user or workspace settings, and for some settings you can jump to the settings file. However, this doesn't enable you to see the default settings, or to edit the settings files that many build tools use. (Putting settings in a config file for the tool instead of in the vscode settings is a best practice so that actions in vscode mirror actions during the production build. Examples, eslint, etc. should always have their settings in a config file and not set in vscode because the build should run the tool the same was as vscode.)
Current Settings Editor
Here is a current example from vscode.
Considering the setting for "focus recent editor after close" I can tell that I am looking at user settings and that the workspace setting has been modified. It is not clear to me what the default is, or what the current value is.
(Firefox gets this partially correct in about:config by showing the defaults and the items that have non-default values. It fails by not providing documentation for each item.)
Show all sources and values at the same time.
Show all sources at the same time and show the computed value that will be used. This gets rid of switching between user and workspace settings, shows where the current value is coming from, and can include default and config files for tools.
My proposal would be to provide a more table-like view:
This is a very rough example and I believe the actual layout can be much cleaner, but it shows the default, the changes, including empty for a source that is not set, and the actual computed value which will be used. Note, that for extensions, such as Prettier, only the config file value would be available by default. I will mention a way for vscode to have more information for extensions and tools farther down the page. In the above table paths without values can still have a description, such as workbench.
Improvements
Tree View
As for improvements, the current settings editor has a partial tree view of settings to the left.
Using a treeview for the path column can support expand, collapse, aggregating tool config files into the tree, etc.
Defaults for Extensions and Build Tool
Using the vscode default settings from vscode settings which has default values and some documentation, we can envision that any extension/tool could provide a default file, so in addition to prettierrc.js I could have a prettierrc.defaults.js that has a format slightly extended from the vscode defaults. (I just used a couple settings for demonstration.)
With the necessary information in the defaults file vscode can change presentation based on types, such as boolean, or using trailingCommand as an example, validate the values, or show them in a dropdown menu.
The text was updated successfully, but these errors were encountered: