microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.37k stars 28.93k forks source link

Cross-extension setting groups #198081

Closed testforstephen closed 9 months ago

testforstephen commented 11 months ago

VS Code Java language support consists of multiple extensions, such as RedHat Java language support, Debugger for Java, Test Runner for Java and more. Each extension has its own settings, which are shown separately in the settings UI. This makes it hard for users to change some settings through the UI. They need to know which extension provides which feature first and then adjust that extension’s settings. The screenshot below shows the Java settings in the settings UI, which are quite crowded by extensions.

image

The feature request is to allow different extensions to contribute settings to a same category in the settings UI. This can make it easier for us to organize Java settings by feature categories rather than by extensions.

vscodenpa commented 11 months ago

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

isidorn commented 11 months ago

Ideally this would be fixed by our similarity search. User searches for "java" and all the right settings would show up. We have introduced this already in Command Palette. @rzhao271 What is the status in the settings? Can we use the same approach that command palette uses today? Thanks

rzhao271 commented 11 months ago

@isidorn I'm not sure how settings similarity search has nearly enough information to give the user the settings they're looking for upon searching just "java".

The Settings editor already has similarity search implemented, and it runs that search in addition to a keyword search. Searching for just "java" currently ends up matching every single setting that contains the word Java in it.

In my opinion, the setting results shown in the screenshot more clearly indicate that https://github.com/microsoft/vscode/issues/197773 should go through. Implementing that proposal would bring the Settings editor closer to the Command Palette.

testforstephen commented 11 months ago

In my opinion, the setting results shown in the screenshot more clearly indicate that https://github.com/microsoft/vscode/issues/197773 should go through. Implementing that proposal would bring the Settings editor closer to the Command Palette.

@rzhao271 Any mockup of how the settings editor would look like when applying https://github.com/microsoft/vscode/issues/197773? thanks.

rzhao271 commented 11 months ago

@testforstephen it'll look the exact same. The only difference would be the ordering of the search results. With #197773, the editor settings wouldn't show up first. Instead, Java settings would show up first. There would still be a lot of settings showing up because of the vague query, though.

goyalyashpal commented 10 months ago

self hiding as duplicate of https://github.com/microsoft/vscode/issues/200686


original comment i am also thinking of something like this. * one can only programatically sort json by some parameters[^sort-json], * but currently, as the top level categorisation of settings (shared below) is not present; * :. it becomes very hard to programatically arrange them to get a _meaningfully_ organised group of the settings. [^sort-json]: Options for Sort JSON `richie5um2.vscode-sort-json`

for language specific extensions, it is important to note that: * these are often enabled only in specific folders/workspaces & disabled elsewhere. * which makes their extensions to become "unknown" (grayed out) & often even invalid ("formatter value not accepted") * so, currently these grayed out/erraneous settings remain randomly scattered all across, thus causing cognitive load ---- ### Three Type Categorisation of settings: [^vanilla-core]: vanilla core:
* core as in these apply independently of any file language/type,
* vanilla as in without any installed extension 1. vanilla "core" settings[^vanilla-core]: * `editor` * `terminal` * `workbench` * `files` * `explorer` * `diffEditor` 1. other generic extension settings: * like those extensions which extend the "core" abilities (mentioned above) 1. language specific settings: * language specific default overrides for editor settings: `[]: { ... }` * settings of all the different extensions specific to that language only ### Screenshots & Sample examples: ![image](https://github.com/microsoft/vscode/assets/19423063/15ec0a6b-cfa5-4f0c-9b08-63304f9d504b)
goyalyashpal commented 9 months ago

hey all! i have thought about a solution which while not is a proper fix for this problem, but can make things workable.

vscodenpa commented 9 months ago

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

vscodenpa commented 9 months ago

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.

Happy Coding!