Skip to content

Commit 660f140

Browse files
authored
Merge pull request microsoft#146163 from microsoft/sandy081/fix146161
Open settings UI editor while configuring language specific settings
2 parents 0aad3c8 + 4e20ea5 commit 660f140

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/vs/workbench/contrib/preferences/browser/preferencesActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class ConfigureLanguageBasedSettingsAction extends Action {
5555
if (pick) {
5656
const languageId = this.languageService.getLanguageIdByLanguageName(pick.label);
5757
if (typeof languageId === 'string') {
58-
return this.preferencesService.openUserSettings({ jsonEditor: true, revealSetting: { key: `[${languageId}]`, edit: true } });
58+
return this.preferencesService.openLanguageSpecificSettings(languageId);
5959
}
6060
}
6161
return undefined;

src/vs/workbench/services/preferences/browser/preferencesService.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,18 @@ export class PreferencesService extends Disposable implements IPreferencesServic
218218
return this.open(this.userSettingsResource, options);
219219
}
220220

221+
openLanguageSpecificSettings(languageId: string, options: IOpenSettingsOptions = {}): Promise<IEditorPane | undefined> {
222+
if (this.shouldOpenJsonByDefault()) {
223+
options.query = undefined;
224+
options.revealSetting = { key: `[${languageId}]`, edit: true };
225+
} else {
226+
options.query = `@lang:${languageId}${options.query ? ` ${options.query}` : ''}`;
227+
}
228+
options.target = options.target ?? ConfigurationTarget.USER_LOCAL;
229+
230+
return this.open(this.userSettingsResource, options);
231+
}
232+
221233
private open(settingsResource: URI, options: IOpenSettingsOptions): Promise<IEditorPane | undefined> {
222234
options = {
223235
...options,

src/vs/workbench/services/preferences/common/preferences.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ export interface IPreferencesService {
239239
openFolderSettings(options: IOpenSettingsOptions & { folderUri: IOpenSettingsOptions['folderUri'] }): Promise<IEditorPane | undefined>;
240240
openGlobalKeybindingSettings(textual: boolean, options?: IKeybindingsEditorOptions): Promise<void>;
241241
openDefaultKeybindingsFile(): Promise<IEditorPane | undefined>;
242+
openLanguageSpecificSettings(language: string, options?: IOpenSettingsOptions): Promise<IEditorPane | undefined>;
242243
getEditableSettingsURI(configurationTarget: ConfigurationTarget, resource?: URI): Promise<URI | null>;
243244

244245
createSplitJsonEditorInput(configurationTarget: ConfigurationTarget, resource: URI): EditorInput;

0 commit comments

Comments
 (0)