diff --git a/src/vs/editor/browser/view/renderingContext.ts b/src/vs/editor/browser/view/renderingContext.ts index bed244ba618..5cb7c840858 100644 --- a/src/vs/editor/browser/view/renderingContext.ts +++ b/src/vs/editor/browser/view/renderingContext.ts @@ -53,8 +53,12 @@ export abstract class RestrictedRenderingContext { return absoluteTop - this.scrollTop; } - public getVerticalOffsetForLineNumber(lineNumber: number): number { - return this._viewLayout.getVerticalOffsetForLineNumber(lineNumber); + public getVerticalOffsetForLineNumber(lineNumber: number, includeViewZones?: boolean): number { + return this._viewLayout.getVerticalOffsetForLineNumber(lineNumber, includeViewZones); + } + + public getVerticalOffsetAfterLineNumber(lineNumber: number, includeViewZones?: boolean): number { + return this._viewLayout.getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones); } public getDecorationsInViewport(): ViewModelDecoration[] { diff --git a/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.ts b/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.ts index fc935881a7a..a9d0ac084cc 100644 --- a/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.ts +++ b/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.ts @@ -82,9 +82,8 @@ export class BlockDecorations extends ViewPart { block = this.blocks[count] = createFastDomNode(document.createElement('div')); this.domNode.appendChild(block); } - const top = ctx.getVerticalOffsetForLineNumber(decoration.range.startLineNumber); - // See https://github.com/microsoft/vscode/pull/152740#discussion_r902661546 - const bottom = ctx.getVerticalOffsetForLineNumber(decoration.range.endLineNumber + 1); + const top = ctx.getVerticalOffsetForLineNumber(decoration.range.startLineNumber, true); + const bottom = ctx.getVerticalOffsetAfterLineNumber(decoration.range.endLineNumber, true); block.setClassName('blockDecorations-block ' + decoration.options.blockClassName); block.setLeft(ctx.scrollLeft); diff --git a/src/vs/editor/common/viewModel.ts b/src/vs/editor/common/viewModel.ts index d4060fcae5f..4ec7f66681f 100644 --- a/src/vs/editor/common/viewModel.ts +++ b/src/vs/editor/common/viewModel.ts @@ -120,7 +120,8 @@ export interface IViewLayout { isInTopPadding(verticalOffset: number): boolean; isInBottomPadding(verticalOffset: number): boolean; getLineNumberAtVerticalOffset(verticalOffset: number): number; - getVerticalOffsetForLineNumber(lineNumber: number): number; + getVerticalOffsetForLineNumber(lineNumber: number, includeViewZones?: boolean): number; + getVerticalOffsetAfterLineNumber(lineNumber: number, includeViewZones?: boolean): number; getWhitespaceAtVerticalOffset(verticalOffset: number): IViewWhitespaceViewportData | null; /**