提交 e7725c7d 编写于 作者: D David Weber

Make lineNumberInterval setting a single type instead of a union type

上级 ee32647e
......@@ -27,7 +27,7 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
private _renderRelativeLineNumbers: boolean;
private _lineNumbersLeft: number;
private _lineNumbersWidth: number;
private _lineNumberInterval: number | { interval: number, showCurrentLineNumber: boolean };
private _lineNumberInterval: { interval: number, showCurrentLineNumber: boolean };
private _lastCursorModelPosition: Position;
private _renderResult: string[];
......@@ -146,15 +146,8 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
}
private _inInterval(lineNumber: number): boolean {
let inInterval = false;
if (typeof this._lineNumberInterval === 'object') {
inInterval = lineNumber % this._lineNumberInterval.interval === 0
|| (this._lineNumberInterval.showCurrentLineNumber && this._lastCursorModelPosition.lineNumber === lineNumber);
} else if (typeof this._lineNumberInterval === 'number') {
inInterval = lineNumber % this._lineNumberInterval === 0;
}
return inInterval;
return lineNumber % this._lineNumberInterval.interval === 0
|| (this._lineNumberInterval.showCurrentLineNumber && this._lastCursorModelPosition.lineNumber === lineNumber);
}
public render(startLineNumber: number, lineNumber: number): string {
......
......@@ -208,28 +208,20 @@ const editorConfiguration: IConfigurationNode = {
'description': nls.localize('lineNumbers', "Controls the display of line numbers. Possible values are 'on', 'off', and 'relative'. 'relative' shows the line count from the current cursor position.")
},
'editor.lineNumberInterval': {
'anyOf': [
{
'type': 'object',
properties: {
interval: {
type: 'number',
'minimum': 1,
default: EDITOR_DEFAULTS.viewInfo.lineNumberInterval,
description: nls.localize('lineNumberInterval.interval', "Controls the interval at which line numbers are shown.")
},
{
type: 'object',
properties: {
interval: {
type: 'number',
'minimum': 1,
default: EDITOR_DEFAULTS.viewInfo.lineNumberInterval,
description: nls.localize('lineNumberInterval.interval', "Controls the interval at which line numbers are shown.")
},
showCurrentLineNumber: {
type: 'boolean',
default: false,
description: nls.localize('lineNumberInterval.showCurrentLineNumber', "Display the line number for the current cursor position.")
}
}
showCurrentLineNumber: {
type: 'boolean',
default: false,
description: nls.localize('lineNumberInterval.showCurrentLineNumber', "Display the line number for the current cursor position.")
}
],
},
'default': EDITOR_DEFAULTS.viewInfo.lineNumberInterval,
'description': nls.localize('lineNumberInterval', "Controls the interval at which line numbers are shown..")
},
......
......@@ -165,7 +165,7 @@ export interface IEditorOptions {
* Controls the interval at which line numbers are rendered.
* Defaults to 1.
*/
lineNumberInterval?: number | { interval: number, showCurrentLineNumber: boolean };
lineNumberInterval?: { interval: number, showCurrentLineNumber: boolean };
/**
* Should the corresponding line be selected when clicking on the line number?
* Defaults to true.
......@@ -767,7 +767,7 @@ export interface InternalEditorViewOptions {
readonly renderCustomLineNumbers: (lineNumber: number) => string;
readonly renderRelativeLineNumbers: boolean;
readonly selectOnLineNumbers: boolean;
readonly lineNumberInterval: number | { interval: number, showCurrentLineNumber: boolean };
readonly lineNumberInterval: { interval: number, showCurrentLineNumber: boolean };
readonly glyphMargin: boolean;
readonly revealHorizontalRightPadding: number;
readonly roundedSelection: boolean;
......@@ -1184,16 +1184,7 @@ export class InternalEditorOptions {
);
}
private static _equalsLineNumberInterval(a: number | { interval: number, showCurrentLineNumber: boolean }, b: number | { interval: number, showCurrentLineNumber: boolean }): boolean {
if (typeof a === 'number') {
if (typeof b !== 'number') {
return false;
}
return a === b;
}
if (typeof b === 'number') {
return false;
}
private static _equalsLineNumberInterval(a: { interval: number, showCurrentLineNumber: boolean }, b: { interval: number, showCurrentLineNumber: boolean }): boolean {
return (
a.interval === b.interval
&& a.showCurrentLineNumber === b.showCurrentLineNumber
......@@ -1639,15 +1630,10 @@ export class EditorOptionsValidator {
renderLineHighlight = _stringSet<'none' | 'gutter' | 'line' | 'all'>(opts.renderLineHighlight, defaults.renderLineHighlight, ['none', 'gutter', 'line', 'all']);
}
let lineNumberInterval: number | { interval: number, showCurrentLineNumber: boolean };
if (typeof opts.lineNumberInterval === 'object') {
lineNumberInterval = {
interval: _clampedInt(opts.lineNumberInterval, 1, 1, Constants.MAX_UINT_32),
...opts.lineNumberInterval
};
} else {
lineNumberInterval = _clampedInt(opts.lineNumberInterval, 1, 1, Constants.MAX_UINT_32)
}
let lineNumberInterval = {
interval: _clampedInt(opts.lineNumberInterval, 1, 1, Constants.MAX_UINT_32),
...opts.lineNumberInterval
};
const mouseWheelScrollSensitivity = _float(opts.mouseWheelScrollSensitivity, defaults.scrollbar.mouseWheelScrollSensitivity);
const scrollbar = this._sanitizeScrollbarOpts(opts.scrollbar, defaults.scrollbar, mouseWheelScrollSensitivity);
......
......@@ -2750,7 +2750,7 @@ declare module monaco.editor {
* Controls the interval at which line numbers are rendered.
* Defaults to 1.
*/
lineNumberInterval?: number | {
lineNumberInterval?: {
interval: number;
showCurrentLineNumber: boolean;
};
......@@ -3288,7 +3288,7 @@ declare module monaco.editor {
readonly renderCustomLineNumbers: (lineNumber: number) => string;
readonly renderRelativeLineNumbers: boolean;
readonly selectOnLineNumbers: boolean;
readonly lineNumberInterval: number | {
readonly lineNumberInterval: {
interval: number;
showCurrentLineNumber: boolean;
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册