From 4057d3b117aac37da156084b7c9c0818ed6b52ca Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 10 Apr 2018 17:43:08 +0200 Subject: [PATCH] fix #47346 --- .../editor/common/services/modelServiceImpl.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/vs/editor/common/services/modelServiceImpl.ts b/src/vs/editor/common/services/modelServiceImpl.ts index 041cf88e4d6..066b91472d6 100644 --- a/src/vs/editor/common/services/modelServiceImpl.ts +++ b/src/vs/editor/common/services/modelServiceImpl.ts @@ -82,15 +82,23 @@ class ModelMarkerHandler { } private static _createDecorationRange(model: ITextModel, rawMarker: IMarker): Range { - let marker = model.validateRange(new Range(rawMarker.startLineNumber, rawMarker.startColumn, rawMarker.endLineNumber, rawMarker.endColumn)); - let ret: Range = new Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn); + + let ret = Range.lift(rawMarker); + + if (rawMarker.severity === MarkerSeverity.Hint && Range.spansMultipleLines(ret)) { + // never render hints on multiple lines + ret = ret.setEndPosition(ret.startLineNumber, ret.startColumn); + } + + ret = model.validateRange(ret); + if (ret.isEmpty()) { let word = model.getWordAtPosition(ret.getStartPosition()); if (word) { ret = new Range(ret.startLineNumber, word.startColumn, ret.endLineNumber, word.endColumn); } else { - let maxColumn = model.getLineLastNonWhitespaceColumn(marker.startLineNumber) || - model.getLineMaxColumn(marker.startLineNumber); + let maxColumn = model.getLineLastNonWhitespaceColumn(ret.startLineNumber) || + model.getLineMaxColumn(ret.startLineNumber); if (maxColumn === 1) { // empty line -- GitLab