From ca7db34d8bee6378a1bd5524ea077bc077e730ab Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 5 Jul 2017 15:51:53 +0200 Subject: [PATCH] Fixes #28628: Indent guides should not assume they start at offset 0 --- .../editor/browser/viewParts/indentGuides/indentGuides.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts b/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts index caa4f1449a8..dfd4f11d014 100644 --- a/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts +++ b/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts @@ -13,6 +13,7 @@ import * as viewEvents from 'vs/editor/common/view/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorIndentGuides } from 'vs/editor/common/view/editorColorRegistry'; import * as dom from 'vs/base/browser/dom'; +import { Position } from 'vs/editor/common/core/position'; export class IndentGuidesOverlay extends DynamicViewOverlay { @@ -54,6 +55,10 @@ export class IndentGuidesOverlay extends DynamicViewOverlay { } return true; } + public onDecorationsChanged(e: viewEvents.ViewDecorationsChangedEvent): boolean { + // true for inline decorations + return true; + } public onFlushed(e: viewEvents.ViewFlushedEvent): boolean { return true; } @@ -94,7 +99,8 @@ export class IndentGuidesOverlay extends DynamicViewOverlay { let indent = this._context.model.getLineIndentGuide(lineNumber); let result = ''; - let left = 0; + let leftMostVisiblePosition = ctx.visibleRangeForPosition(new Position(lineNumber, 1)); + let left = leftMostVisiblePosition ? leftMostVisiblePosition.left : 0; for (let i = 0; i < indent; i++) { result += `
`; left += tabWidth;