From 061f0f5ef44afa00a3d3b9867e44fd23c4b451ad Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 22 Aug 2018 11:20:41 +0200 Subject: [PATCH] Small stylistic changes --- src/vs/editor/common/config/editorOptions.ts | 2 +- .../editor/common/controller/cursorCommon.ts | 33 ++++++++++++------- .../common/controller/cursorTypeOperations.ts | 1 - .../languageConfigurationExtensionPoint.ts | 1 - 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/vs/editor/common/config/editorOptions.ts b/src/vs/editor/common/config/editorOptions.ts index 6ef2b811d3f..b642b3caae4 100644 --- a/src/vs/editor/common/config/editorOptions.ts +++ b/src/vs/editor/common/config/editorOptions.ts @@ -1718,7 +1718,7 @@ export class EditorOptionsValidator { let autoClosingBrackets: EditorAutoClosingStrategy; let autoClosingQuotes: EditorAutoClosingStrategy; let autoWrapping: EditorAutoWrappingStrategy; - if (typeof (opts.autoClosingBrackets) === 'boolean' && opts.autoClosingBrackets === false) { + if (typeof opts.autoClosingBrackets === 'boolean' && opts.autoClosingBrackets === false) { // backwards compatibility: disable all on boolean false autoClosingBrackets = 'never'; autoClosingQuotes = 'never'; diff --git a/src/vs/editor/common/controller/cursorCommon.ts b/src/vs/editor/common/controller/cursorCommon.ts index 3eb11919f8d..e9b777d1df3 100644 --- a/src/vs/editor/common/controller/cursorCommon.ts +++ b/src/vs/editor/common/controller/cursorCommon.ts @@ -20,7 +20,6 @@ import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; import { CursorChangeReason } from 'vs/editor/common/controller/cursorEvents'; import { VerticalRevealType } from 'vs/editor/common/view/viewEvents'; import { TextModelResolvedOptions, ITextModel } from 'vs/editor/common/model'; -import { CharacterPairSupport } from 'vs/editor/common/modes/supports/characterPair'; export interface IColumnSelectData { toViewLineNumber: number; @@ -67,6 +66,10 @@ export interface CharacterMap { [char: string]: string; } +const autoCloseAlways = _ => true; +const autoCloseNever = _ => false; +const autoCloseBeforeWhitespace = (chr: string) => (chr === ' ' || chr === '\t'); + export class CursorConfiguration { _cursorMoveConfigurationBrand: void; @@ -138,8 +141,8 @@ export class CursorConfiguration { this._electricChars = null; this.shouldAutoCloseBefore = { - quote: CursorConfiguration._getShouldAutoclose(languageIdentifier, this.autoClosingQuotes), - bracket: CursorConfiguration._getShouldAutoclose(languageIdentifier, this.autoClosingBrackets) + quote: CursorConfiguration._getShouldAutoClose(languageIdentifier, this.autoClosingQuotes), + bracket: CursorConfiguration._getShouldAutoClose(languageIdentifier, this.autoClosingBrackets) }; let autoClosingPairs = CursorConfiguration._getAutoClosingPairs(languageIdentifier); @@ -193,20 +196,26 @@ export class CursorConfiguration { } } - private static _getShouldAutoclose(languageIdentifier: LanguageIdentifier, autoCloseConfig: EditorAutoClosingStrategy): (ch: string) => boolean { - let autoCloseBeforeSet = CursorConfiguration._getAutoCloseBeforeSet(languageIdentifier); - if (autoCloseConfig === 'beforeWhitespace') { return c => CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_WHITESPACE.indexOf(c) !== -1; } - if (autoCloseConfig === 'languageDefined') { return c => autoCloseBeforeSet.indexOf(c) !== -1; } - if (autoCloseConfig === 'always') { return c => true; } - return c => false; + private static _getShouldAutoClose(languageIdentifier: LanguageIdentifier, autoCloseConfig: EditorAutoClosingStrategy): (ch: string) => boolean { + switch (autoCloseConfig) { + case 'beforeWhitespace': + return autoCloseBeforeWhitespace; + case 'languageDefined': + return CursorConfiguration._getLanguageDefinedShouldAutoClose(languageIdentifier); + case 'always': + return autoCloseAlways; + case 'never': + return autoCloseNever; + } } - private static _getAutoCloseBeforeSet(languageIdentifier: LanguageIdentifier): string { + private static _getLanguageDefinedShouldAutoClose(languageIdentifier: LanguageIdentifier): (ch: string) => boolean { try { - return LanguageConfigurationRegistry.getAutoCloseBeforeSet(languageIdentifier.id); + const autoCloseBeforeSet = LanguageConfigurationRegistry.getAutoCloseBeforeSet(languageIdentifier.id); + return c => autoCloseBeforeSet.indexOf(c) !== -1; } catch (e) { onUnexpectedError(e); - return null; + return autoCloseNever; } } diff --git a/src/vs/editor/common/controller/cursorTypeOperations.ts b/src/vs/editor/common/controller/cursorTypeOperations.ts index 72546cb0c00..726a007bd83 100644 --- a/src/vs/editor/common/controller/cursorTypeOperations.ts +++ b/src/vs/editor/common/controller/cursorTypeOperations.ts @@ -532,7 +532,6 @@ export class TypeOperations { const position = selection.getPosition(); const lineText = model.getLineContent(position.lineNumber); - // Do not auto-close ' or " after a word character if (chIsQuote && position.column > 1) { const wordSeparators = getMapForWordSeparators(config.wordSeparators); diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/languageConfiguration/languageConfigurationExtensionPoint.ts b/src/vs/workbench/parts/codeEditor/electron-browser/languageConfiguration/languageConfigurationExtensionPoint.ts index 000d7800bab..c739f208f75 100644 --- a/src/vs/workbench/parts/codeEditor/electron-browser/languageConfiguration/languageConfigurationExtensionPoint.ts +++ b/src/vs/workbench/parts/codeEditor/electron-browser/languageConfiguration/languageConfigurationExtensionPoint.ts @@ -280,7 +280,6 @@ export class LanguageConfigurationFileHandler { richEditConfig.autoCloseBefore = autoCloseBefore; } - if (configuration.wordPattern) { try { let wordPattern = this._parseRegex(configuration.wordPattern);