From 60efc2e4c2f12f22b68b4134fde2c29b4520d72f Mon Sep 17 00:00:00 2001 From: Pedro Fernandes Date: Sat, 8 Dec 2018 14:25:48 +0000 Subject: [PATCH] Added displayBlankLastLineNumber handling to getLineRenderLineNumber() --- .../browser/viewParts/lineNumbers/lineNumbers.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts b/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts index 339a20654aa..cedebb5a208 100644 --- a/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts +++ b/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts @@ -23,6 +23,7 @@ export class LineNumbersOverlay extends DynamicViewOverlay { private _lineHeight: number; private _renderLineNumbers: RenderLineNumbersType; private _renderCustomLineNumbers: ((lineNumber: number) => string) | null; + private _displayBlankLastLineNumber: boolean; private _lineNumbersLeft: number; private _lineNumbersWidth: number; private _lastCursorModelPosition: Position; @@ -44,6 +45,7 @@ export class LineNumbersOverlay extends DynamicViewOverlay { this._lineHeight = config.lineHeight; this._renderLineNumbers = config.viewInfo.renderLineNumbers; this._renderCustomLineNumbers = config.viewInfo.renderCustomLineNumbers; + this._displayBlankLastLineNumber = config.viewInfo.displayBlankLastLineNumber; this._lineNumbersLeft = config.layoutInfo.lineNumbersLeft; this._lineNumbersWidth = config.layoutInfo.lineNumbersWidth; } @@ -92,11 +94,22 @@ export class LineNumbersOverlay extends DynamicViewOverlay { private _getLineRenderLineNumber(viewLineNumber: number): string { const modelPosition = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new Position(viewLineNumber, 1)); + if (modelPosition.column !== 1) { return ''; } + let modelLineNumber = modelPosition.lineNumber; + if (!this._displayBlankLastLineNumber) { + const lineCount = this._context.model.getLineCount(); + const lineContent = this._context.model.getLineContent(modelLineNumber); + + if (modelLineNumber === lineCount && lineContent === '') { + return ''; + } + } + if (this._renderCustomLineNumbers) { return this._renderCustomLineNumbers(modelLineNumber); } -- GitLab