Change:
Refs: If the settings UI is not used pressing the gear button in the "Failed to save.." notification does not insert or locate the "files.preventSaveConflicts" setting in the file. This lets the user clueless about the name of the setting.
it should open the settings editor and fill in the settings name automatically: ! Could it be that you have disabled the settings UI editor?
Yes, that's why the sentence starts with "If the settings UI is not used"...
I am using this method: I think this should work even if you have configured a settings text editor?
as the first parameter means to use the user's configured settings editor. You can force it to pick one or the other by passing a boolean.
well I would not want to force it to the user, I would think this method needs to support both textual settings editor and UI editor.
It does, I'm not sure what you're asking for.
yes it does open the settings text editor, but the settings key I am passing in is not being used. Wouldn't it make sense to maybe put in the key and open intellisense automatically?
I don't think it makes sense to have this in the plan json editor, it will leave your settings file in an invalid state unless the user cleans it up. Which is very different from just searching for the setting.
Yeah, that is true. Feel free to close, I don't have a better suggestion just now.
is there a way to open the suggest widget with a certain row focused, without actually inserting any text into the editor? It would be cool if we could open the json settings editor, insert a blank line at the bottom, show this: ! (or whatever the requested setting is) but it would be fragile. If the user clicks anywhere else it would disappear.
just as a reference, this flow is implemented with debug launch configurations and imho works nicely: !
What mentioned seems to be effect of running command . I think you can set the selected value and trigger a completion at this position, which should trigger a replace completion with current value focused: !
right but I need it to reveal a particular item I want to do this without writing anything into the user's settings
Hm, that's it but the provider doesn't know that we are in this particular context. I think that telling the provider to do something different would be hacky. what do you think about suggestion, do you think it's ok to actually write the default setting into the settings file? If so I would implement that.
If it's side-by-side, then you can just select the setting on the left side. But if there's only one single editor, I think my suggestion is reasonable.
yeah I think that makes good sense as long as you write the key and value fully so that the settings editor is left in an OK state.
This issue came up during the settings sync user testing. FYI, this feature is already supported from another place -Configuring language specific settings. When a language is selected, this action opens the file and reveals the selected language setting. If language setting does not exists then it will add an entry and reveals it. ! It was supported only for language specific settings using the following API I removed this API and adopted it work for all settings by introducing option in Settings options. In addition I also enhanced it to show suggest widget (as mentioned in this issue) - Here is new behaviour ! It works as follows when called on primitive type settings !
Using this from settings editor looks like follows: ! Created a PR to adopt this in settings editor
Verification Steps: Open Settings UI Editor Use the action for eg on Sync Ignored Settings / Ignored Extensions settings Make sure the settings file is opened with IntelliSense triggered

Discussion:
} switchToSettingsFile(): Promise<IEditorPane | undefined> { <del> const query = parseQuery(this.searchWidget.getValue()); return this.openSettingsFile(query.query); </del> <ins> const query = parseQuery(this.searchWidget.getValue()).query; return this.openSettingsFile({ query }); </ins> } <del> private async openSettingsFile(query?: string): Promise<IEditorPane | undefined> { </del> <ins> private async openSettingsFile(options?: ISettingsEditorOptions): Promise<IEditorPane | undefined> { </ins> const currentSettingsTarget = this.settingsTargetsWidget.settingsTarget; <del> const options: ISettingsEditorOptions = { query }; </del> if (currentSettingsTarget === ConfigurationTarget.USER_LOCAL) { return this.preferencesService.openGlobalSettings(true, options); } else if (currentSettingsTarget === ConfigurationTarget.USER_REMOTE) {

this.settingRenderers = this.instantiationService.createInstance(SettingTreeRenderers); this._register(this.settingRenderers.onDidChangeSetting(e => this.onDidChangeSetting(e.key, e.value, e.type))); this._register(this.settingRenderers.onDidOpenSettings(settingKey => { <del> this.openSettingsFile(settingKey); </del> <ins> this.openSettingsFile({ editSetting: settingKey }); </ins> })); this._register(this.settingRenderers.onDidClickSettingLink(settingName => this.onDidClickSetting(settingName))); this._register(this.settingRenderers.onDidFocusSetting(element => {