Fixes #12730: "editor.lineNumbers" should use "on", "off", and "relative"

This commit is contained in:
Alex Dima
2016-09-27 23:20:13 +03:00
parent 7f0e2adacf
commit d2060eee32
7 changed files with 23 additions and 15 deletions

View File

@@ -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 (<any>lineNumbers === true) {
lineNumbers = 'on';
} else if (<any>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")
},

View File

@@ -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,

View File

@@ -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.

2
src/vs/monaco.d.ts vendored
View File

@@ -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.

View File

@@ -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

View File

@@ -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,

View File

@@ -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 = [];