Skip to content

Commit 8e98e74

Browse files
committed
proper fix
1 parent d8847c8 commit 8e98e74

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import { ILanguageService } from 'vs/editor/common/languages/language';
1111
import * as nls from 'vs/nls';
1212
import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
1313
import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences';
14-
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1514

1615
export class ConfigureLanguageBasedSettingsAction extends Action {
1716

@@ -25,7 +24,6 @@ export class ConfigureLanguageBasedSettingsAction extends Action {
2524
@ILanguageService private readonly languageService: ILanguageService,
2625
@IQuickInputService private readonly quickInputService: IQuickInputService,
2726
@IPreferencesService private readonly preferencesService: IPreferencesService,
28-
@IConfigurationService private readonly configurationService: IConfigurationService,
2927
) {
3028
super(id, label);
3129
}
@@ -57,11 +55,7 @@ export class ConfigureLanguageBasedSettingsAction extends Action {
5755
if (pick) {
5856
const languageId = this.languageService.getLanguageIdByLanguageName(pick.label);
5957
if (typeof languageId === 'string') {
60-
if (this.configurationService.getValue('workbench.settings.editor') === 'json') {
61-
return this.preferencesService.openUserSettings({ jsonEditor: true, revealSetting: { key: `[${languageId}]`, edit: true } });
62-
} else {
63-
return this.preferencesService.openUserSettings({ query: `@lang:${languageId}` });
64-
}
58+
return this.preferencesService.openLanguageSpecificSettings(languageId);
6559
}
6660
}
6761
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)