diff --git a/extensions/configuration-editing/src/extension.ts b/extensions/configuration-editing/src/extension.ts index 5003c35ff82..913c5288809 100644 --- a/extensions/configuration-editing/src/extension.ts +++ b/extensions/configuration-editing/src/extension.ts @@ -3,12 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as nls from 'vscode-nls'; -const localize = nls.loadMessageBundle(); -import * as vscode from 'vscode'; -import { getLocation, visit, parse, ParseErrorCode } from 'jsonc-parser'; +import { getLocation, parse, visit } from 'jsonc-parser'; import * as path from 'path'; +import * as vscode from 'vscode'; +import * as nls from 'vscode-nls'; import { SettingsDocument } from './settingsDocumentHelper'; +const localize = nls.loadMessageBundle(); const fadedDecoration = vscode.window.createTextEditorDecorationType({ light: { @@ -45,50 +45,6 @@ export function activate(context: vscode.ExtensionContext): void { } }, null, context.subscriptions)); updateLaunchJsonDecorations(vscode.window.activeTextEditor); - - context.subscriptions.push(vscode.workspace.onWillSaveTextDocument(e => { - if (!e.document.fileName.endsWith('/settings.json')) { - return; - } - - autoFixSettingsJSON(e); - })); -} - -function autoFixSettingsJSON(willSaveEvent: vscode.TextDocumentWillSaveEvent): void { - const document = willSaveEvent.document; - const text = document.getText(); - const edit = new vscode.WorkspaceEdit(); - - let lastEndOfSomething = -1; - visit(text, { - onArrayEnd(offset: number, length: number): void { - lastEndOfSomething = offset + length; - }, - - onLiteralValue(_value: any, offset: number, length: number): void { - lastEndOfSomething = offset + length; - }, - - onObjectEnd(offset: number, length: number): void { - lastEndOfSomething = offset + length; - }, - - onError(error: ParseErrorCode, _offset: number, _length: number): void { - if (error === ParseErrorCode.CommaExpected && lastEndOfSomething > -1) { - const fixPosition = document.positionAt(lastEndOfSomething); - - // Don't insert a comma immediately before a : or ' :' - const colonRange = document.getWordRangeAtPosition(fixPosition, / *:/); - if (!colonRange) { - edit.insert(document.uri, fixPosition, ','); - } - } - } - }); - - willSaveEvent.waitUntil( - vscode.workspace.applyEdit(edit)); } function registerSettingsCompletions(): vscode.Disposable {