@@ -11,6 +11,7 @@ import { ILanguageService } from 'vs/editor/common/languages/language';
11
11
import * as nls from 'vs/nls' ;
12
12
import { IQuickInputService , IQuickPickItem } from 'vs/platform/quickinput/common/quickInput' ;
13
13
import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences' ;
14
+ import { IConfigurationService } from 'vs/platform/configuration/common/configuration' ;
14
15
15
16
export class ConfigureLanguageBasedSettingsAction extends Action {
16
17
@@ -23,7 +24,8 @@ export class ConfigureLanguageBasedSettingsAction extends Action {
23
24
@IModelService private readonly modelService : IModelService ,
24
25
@ILanguageService private readonly languageService : ILanguageService ,
25
26
@IQuickInputService private readonly quickInputService : IQuickInputService ,
26
- @IPreferencesService private readonly preferencesService : IPreferencesService
27
+ @IPreferencesService private readonly preferencesService : IPreferencesService ,
28
+ @IConfigurationService private readonly configurationService : IConfigurationService ,
27
29
) {
28
30
super ( id , label ) ;
29
31
}
@@ -55,7 +57,11 @@ export class ConfigureLanguageBasedSettingsAction extends Action {
55
57
if ( pick ) {
56
58
const languageId = this . languageService . getLanguageIdByLanguageName ( pick . label ) ;
57
59
if ( typeof languageId === 'string' ) {
58
- return this . preferencesService . openUserSettings ( { query : `@lang:${ languageId } ` } ) ;
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
+ }
59
65
}
60
66
}
61
67
return undefined ;
0 commit comments