Skip to content

Commit 76989b3

Browse files
committed
Fixes for jsonc mode. Fixes microsoft#39199
1 parent 936f4f6 commit 76989b3

13 files changed

Lines changed: 18 additions & 16 deletions

File tree

extensions/configuration-editing/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"Other"
1111
],
1212
"activationEvents": [
13-
"onLanguage:json"
13+
"onLanguage:json", "onLanguage:jsonc"
1414
],
1515
"main": "./out/extension",
1616
"scripts": {

extensions/configuration-editing/src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function registerKeybindingsCompletions(): vscode.Disposable {
6060
}
6161

6262
function registerSettingsCompletions(): vscode.Disposable {
63-
return vscode.languages.registerCompletionItemProvider({ language: 'json', pattern: '**/settings.json' }, {
63+
return vscode.languages.registerCompletionItemProvider({ language: 'jsonc', pattern: '**/settings.json' }, {
6464
provideCompletionItems(document, position, token) {
6565
return new SettingsDocument(document).provideCompletionItems(position, token);
6666
}
@@ -173,7 +173,7 @@ function updateLaunchJsonDecorations(editor: vscode.TextEditor | undefined): voi
173173
editor.setDecorations(decoration, ranges);
174174
}
175175

176-
vscode.languages.registerDocumentSymbolProvider({ pattern: '**/launch.json', language: 'json' }, {
176+
vscode.languages.registerDocumentSymbolProvider({ pattern: '**/launch.json', language: 'jsonc' }, {
177177
provideDocumentSymbols(document: vscode.TextDocument, token: vscode.CancellationToken): vscode.ProviderResult<vscode.SymbolInformation[]> {
178178
const result: vscode.SymbolInformation[] = [];
179179
let name: string = '';

extensions/json/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"filenames": [
5757
"settings.json",
5858
"launch.json",
59-
"debug.json",
59+
"tasks.json",
6060
"keybindings.json"
6161
],
6262
"configuration": "./language-configuration.json"

extensions/json/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"dependencies": {
1111
"jsonc-parser": "^1.0.0",
1212
"request-light": "^0.2.1",
13-
"vscode-json-languageservice": "^3.0.2",
13+
"vscode-json-languageservice": "^3.0.3",
1414
"vscode-languageserver": "^3.5.0",
1515
"vscode-nls": "^2.0.2",
1616
"vscode-uri": "^1.0.1"

extensions/json/server/src/jsonServerMain.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ connection.onDidChangeConfiguration((change) => {
161161
let enableFormatter = settings && settings.json && settings.json.format && settings.json.format.enable;
162162
if (enableFormatter) {
163163
if (!formatterRegistration) {
164-
formatterRegistration = connection.client.register(DocumentRangeFormattingRequest.type, { documentSelector: [{ language: 'json' }] });
164+
formatterRegistration = connection.client.register(DocumentRangeFormattingRequest.type, { documentSelector: [{ language: 'json' }, { language: 'jsonc' }] });
165165
}
166166
} else if (formatterRegistration) {
167167
formatterRegistration.then(r => r.dispose());

extensions/json/server/yarn.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ request-light@^0.2.1:
5252
https-proxy-agent "^0.3.5"
5353
vscode-nls "^2.0.2"
5454

55-
vscode-json-languageservice@^3.0.2:
56-
version "3.0.2"
57-
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.0.2.tgz#66762127f24d32709ea5f410c58080ed8059d1e2"
55+
vscode-json-languageservice@^3.0.3:
56+
version "3.0.3"
57+
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.0.3.tgz#d865450a86dd3229bfac83a4245b38281e2dffb3"
5858
dependencies:
5959
jsonc-parser "^1.0.0"
6060
vscode-languageserver-types "^3.5.0"

src/vs/base/common/jsonSchema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export interface IJSONSchema {
5555
markdownEnumDescriptions?: string[]; // VSCode extension
5656
markdownDescription?: string; // VSCode extension
5757
doNotSuggest?: boolean; // VSCode extension
58+
allowComments?: boolean; // VSCode extension
5859
}
5960

6061
export interface IJSONSchemaMap {

src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ export class ConfigurationManager implements IConfigurationManager {
379379

380380
public canSetBreakpointsIn(model: IModel): boolean {
381381
const modeId = model ? model.getLanguageIdentifier().language : null;
382-
if (!modeId || modeId === 'json') {
382+
if (!modeId || modeId === 'jsonc') {
383383
// do not allow breakpoints in our settings files
384384
return false;
385385
}

src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@ export class FeedbackWidgetRenderer extends Disposable {
606606
JSON.stringify(feedbackQuery, undefined, ' ') + '\n\n' +
607607
actualResultNames.map(name => `// ${name}: ${result.metadata.scoredResults[name]}`).join('\n');
608608

609-
this.editorService.openEditor({ contents, language: 'json' }, /*sideBySide=*/true).then(feedbackEditor => {
609+
this.editorService.openEditor({ contents, language: 'jsonc' }, /*sideBySide=*/true).then(feedbackEditor => {
610610
const sendFeedbackWidget = this._register(this.instantiationService.createInstance(FloatingClickWidget, feedbackEditor.getControl(), 'Send feedback', null));
611611
sendFeedbackWidget.render();
612612

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic
111111
if (this.isDefaultSettingsResource(uri) || this.isDefaultResourceSettingsResource(uri)) {
112112

113113
const scope = this.isDefaultSettingsResource(uri) ? ConfigurationScope.WINDOW : ConfigurationScope.RESOURCE;
114-
const mode = this.modeService.getOrCreateMode('json');
114+
const mode = this.modeService.getOrCreateMode('jsonc');
115115
const model = this._register(this.modelService.createModel('', mode, uri));
116116

117117
let defaultSettings: DefaultSettings;
@@ -139,14 +139,14 @@ export class PreferencesService extends Disposable implements IPreferencesServic
139139

140140
if (this.defaultSettingsRawResource.toString() === uri.toString()) {
141141
let defaultSettings: DefaultSettings = this.getDefaultSettings(ConfigurationScope.WINDOW);
142-
const mode = this.modeService.getOrCreateMode('json');
142+
const mode = this.modeService.getOrCreateMode('jsonc');
143143
const model = this._register(this.modelService.createModel(defaultSettings.raw, mode, uri));
144144
return TPromise.as(model);
145145
}
146146

147147
if (this.defaultKeybindingsResource.toString() === uri.toString()) {
148148
const defaultKeybindingsEditorModel = this.instantiationService.createInstance(DefaultKeybindingsEditorModel, uri);
149-
const mode = this.modeService.getOrCreateMode('json');
149+
const mode = this.modeService.getOrCreateMode('jsonc');
150150
const model = this._register(this.modelService.createModel(defaultKeybindingsEditorModel.content, mode, uri));
151151
return TPromise.as(model);
152152
}

0 commit comments

Comments
 (0)