Ironically, the same company showed how to perfectly execute a settings page in Visual Studio Code: It's searchable, has a consistent and intuitive grouping, a simple way to get help for each individual setting and an import/export functionality. But I suppose, it's from a different department...
It also requires manual JSON for many things, which are also not searchable, nor assistive-tool friendly because it relies on individually navigating through a tree of autocomplete rather than viewing them all on a single page...
vscode's settings are easily my least favorite modern pattern, and I am flabbergasted that it's spreading to other tools. The "it's one big scrollable list with a sidebar nav" is great in some ways, but everything else about it is downright awful.
JSON(5, with comments) as a config storage format? And optional editing UI? Oh heck yes, that's perfectly reasonable.
Requiring manual JSON editing, even with fancy autocomplete? Hell no. Turn that into a UI with the same info you show in the autocomplete. Obviously. WTF VSCode. WTF every tool that has copied this. This is not even slightly acceptable.
I liked that part, but I'm fully with you that many UX decisions in VS code are completely inscrutable. Such as building an entire UI toolkit without any ability to show dialogs - and then requiring plugin authors to awkwardly work around this limitation by abusing the quick navigation and autocomplete functionalities - and if that doesn't work, have the users manually edit json files...
I still don't know how to switch to the JSON-only view the few times that I need it.
And I hate that quite a few extensions have a vague "just set X in settings" in their README's where X doesn't show up in the auto generated UI, and is called something else in JSON
Like tredre3 said there's also a button on the top right corner of settings, but I tend to prefer to start directly into json mode through the command palette.
Being able to find any sort of action with the palette just by typing is hands down the best UI design I've experienced in software. It's not new, Unity had it in the older Ubuntu distributions, but it's unfortunately not seen often enough and Ubuntu lost it when they moved to Gnome.
The palette search box also has the smart design of placing to the top functions you use the most through the palette, so if you open the json settings a few times it'll pop up at the top before you even finish typing the word "settings".
After a while, your interactions with the palette make its UI feel very personalized to your needs.
But I've never used a sophisticated application that does most of its config via registry editing. It's for extreme edge cases only, where it's basically fine - it's a worse about:config, but it serves the same purpose, you only go in there when you already know what you need to do.
vscode, in contrast, puts common things into hand-edited-json-only config. I don't think I've ever had a vscode project that didn't require json changes to work correctly. That's ridiculous.
> It's searchable, has a consistent and intuitive grouping, a simple way to get help for each individual setting and an import/export functionality.
IIRC, Eclipse had all of that (or maybe all that except for import/export?) five+ years prior to VS Code's first public release.
And given that "Do a substring search through this huge-ass mess of options and switches and winnow down to the matches" is such a blindingly obvious thing to add in when you get so very many options in your configuration GUI, I'd be shocked if there weren't several things that predate Eclipse that did that, too.