diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index 504745ddc8a..20974479e75 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -235,6 +235,14 @@ class InternalEditorOptionsHelper { let renderLineNumbers: boolean; let renderCustomLineNumbers: (lineNumber:number)=>string; let renderRelativeLineNumbers: boolean; + + // Compatibility with old true or false values + if (lineNumbers === true) { + lineNumbers = 'on'; + } else if (lineNumbers === false) { + lineNumbers = 'off'; + } + if (typeof lineNumbers === 'function') { renderLineNumbers = true; renderCustomLineNumbers = lineNumbers; @@ -243,8 +251,12 @@ class InternalEditorOptionsHelper { renderLineNumbers = true; renderCustomLineNumbers = null; renderRelativeLineNumbers = true; + } else if (lineNumbers === 'on') { + renderLineNumbers = true; + renderCustomLineNumbers = null; + renderRelativeLineNumbers = false; } else { - renderLineNumbers = lineNumbers; + renderLineNumbers = false; renderCustomLineNumbers = null; renderRelativeLineNumbers = false; } @@ -629,12 +641,8 @@ let editorConfiguration:IConfigurationNode = { 'description': nls.localize('lineHeight', "Controls the line height. Use 0 to compute the lineHeight from the fontSize.") }, 'editor.lineNumbers' : { - oneOf: [{ - 'type': 'boolean' - }, { - 'type': 'string', - 'enum': ['relative'] - }], + 'type': 'string', + 'enum': ['off', 'on', 'relative'], 'default': DefaultConfig.editor.lineNumbers, 'description': nls.localize('lineNumbers', "Controls visibility of line numbers") }, diff --git a/src/vs/editor/common/config/defaultConfig.ts b/src/vs/editor/common/config/defaultConfig.ts index e0107ab433d..5d9d2cefa14 100644 --- a/src/vs/editor/common/config/defaultConfig.ts +++ b/src/vs/editor/common/config/defaultConfig.ts @@ -40,7 +40,7 @@ class ConfigClass implements IConfiguration { wordSeparators: USUAL_WORD_SEPARATORS, selectionClipboard: true, ariaLabel: nls.localize('editorViewAccessibleLabel', "Editor content"), - lineNumbers: true, + lineNumbers: 'on', selectOnLineNumbers: true, lineNumbersMinChars: 5, glyphMargin: false, diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index f91d03a05ca..3dac506d42b 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -171,7 +171,7 @@ export enum WrappingIndent { Indent = 2 } -export type LineNumbersOption = true | false | 'relative' | ((lineNumber:number)=>string); +export type LineNumbersOption = 'on' | 'off' | 'relative' | ((lineNumber:number)=>string); /** * Configuration options for the editor. diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 917dc745e76..755ddd32afd 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1035,7 +1035,7 @@ declare module monaco.editor { Indent = 2, } - export type LineNumbersOption = true | false | 'relative' | ((lineNumber: number) => string); + export type LineNumbersOption = 'on' | 'off' | 'relative' | ((lineNumber: number) => string); /** * Configuration options for the editor. diff --git a/src/vs/workbench/api/node/mainThreadEditorsTracker.ts b/src/vs/workbench/api/node/mainThreadEditorsTracker.ts index 55c66278d50..3816013b817 100644 --- a/src/vs/workbench/api/node/mainThreadEditorsTracker.ts +++ b/src/vs/workbench/api/node/mainThreadEditorsTracker.ts @@ -263,16 +263,16 @@ export class MainThreadTextEditor { return; } - let lineNumbers: true | false | 'relative'; + let lineNumbers: 'on' | 'off' | 'relative'; switch (newConfiguration.lineNumbers) { case TextEditorLineNumbersStyle.On: - lineNumbers = true; + lineNumbers = 'on'; break; case TextEditorLineNumbersStyle.Relative: lineNumbers = 'relative'; break; default: - lineNumbers = false; + lineNumbers = 'off'; } this._codeEditor.updateOptions({ lineNumbers: lineNumbers diff --git a/src/vs/workbench/parts/debug/electron-browser/repl.ts b/src/vs/workbench/parts/debug/electron-browser/repl.ts index ca5b1e60444..3e2cc13e19d 100644 --- a/src/vs/workbench/parts/debug/electron-browser/repl.ts +++ b/src/vs/workbench/parts/debug/electron-browser/repl.ts @@ -275,7 +275,7 @@ export class Repl extends Panel implements IPrivateReplService { wrappingColumn: 0, overviewRulerLanes: 0, glyphMargin: false, - lineNumbers: false, + lineNumbers: 'off', folding: false, selectOnLineNumbers: false, selectionHighlight: false, diff --git a/src/vs/workbench/parts/output/browser/outputPanel.ts b/src/vs/workbench/parts/output/browser/outputPanel.ts index c3680746dcd..78072e6c0ee 100644 --- a/src/vs/workbench/parts/output/browser/outputPanel.ts +++ b/src/vs/workbench/parts/output/browser/outputPanel.ts @@ -81,7 +81,7 @@ export class OutputPanel extends StringEditor { protected getCodeEditorOptions(): IEditorOptions { const options = super.getCodeEditorOptions(); options.wrappingColumn = 0; // all output editors wrap - options.lineNumbers = false; // all output editors hide line numbers + options.lineNumbers = 'off'; // all output editors hide line numbers options.glyphMargin = false; options.lineDecorationsWidth = 20; options.rulers = [];