From 52b3c58d7b87a5905e468be503685eb3228cf50f Mon Sep 17 00:00:00 2001 From: Amadeus Demarzi Date: Wed, 5 Aug 2026 11:43:29 -0700 Subject: [PATCH 1/3] Rename test --- packages/diffs/src/components/CodeView.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/diffs/src/components/CodeView.ts b/packages/diffs/src/components/CodeView.ts index db35c8083..81f79a41f 100644 --- a/packages/diffs/src/components/CodeView.ts +++ b/packages/diffs/src/components/CodeView.ts @@ -69,7 +69,7 @@ interface ItemAnchor { viewportOffset: number; } -interface LineAnchor { +interface LineAnchorAlt { type: 'line'; id: string; lineNumber: number; @@ -77,7 +77,7 @@ interface LineAnchor { viewportOffset: number; } -type ScrollAnchor = ItemAnchor | LineAnchor; +type ScrollAnchor = ItemAnchor | LineAnchorAlt; interface LineScrollPosition { top: number; From 9e2443f92a345452b2404b6161cb5a09d4ad03d5 Mon Sep 17 00:00:00 2001 From: Amadeus Demarzi Date: Wed, 5 Aug 2026 11:44:10 -0700 Subject: [PATCH 2/3] Try a move and sort change --- packages/diffs/src/components/CodeView.ts | 64 +++++++++++------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/diffs/src/components/CodeView.ts b/packages/diffs/src/components/CodeView.ts index 81f79a41f..9ba754e9d 100644 --- a/packages/diffs/src/components/CodeView.ts +++ b/packages/diffs/src/components/CodeView.ts @@ -57,6 +57,37 @@ import { VirtualizedFile } from './VirtualizedFile'; import { VirtualizedFileDiff } from './VirtualizedFileDiff'; import type { VirtualizerConfig } from './Virtualizer'; +function getSlotItems( + renderedItems: CodeViewRenderedItem[], + { + hasHeaderRenderers, + hasAnnotationRenderer, + hasGutterRenderer, + }: CodeViewCoordinator +): CodeViewRenderedItem[] | undefined { + if (renderedItems.length === 0) { + return undefined; + } + + if (hasHeaderRenderers || hasGutterRenderer) { + return renderedItems; + } + + if (!hasAnnotationRenderer) { + return undefined; + } + + const slotSnapshot: CodeViewRenderedItem[] = []; + + for (const renderedItem of renderedItems) { + if (hasAnnotations(renderedItem.item)) { + slotSnapshot.push(renderedItem); + } + } + + return slotSnapshot.length > 0 ? slotSnapshot : undefined; +} + // When re-rendering content of the virtualizer, it's important that we // maintain a visual anchor, usually this is the first fully visible element, // whether it's an Item (a file or diff header), or a specific line. If the @@ -4211,8 +4242,8 @@ function renderItem( * before rendering updates. */ function syncRenderedItemOrder( - container: HTMLElement, element: HTMLElement, + container: HTMLElement, prevElement: HTMLElement | undefined ): void { if (prevElement == null) { @@ -4230,34 +4261,3 @@ function syncRenderedItemOrder( function hasAnnotations(item: CodeViewItem): boolean { return (item.annotations?.length ?? 0) > 0; } - -function getSlotItems( - renderedItems: CodeViewRenderedItem[], - { - hasHeaderRenderers, - hasAnnotationRenderer, - hasGutterRenderer, - }: CodeViewCoordinator -): CodeViewRenderedItem[] | undefined { - if (renderedItems.length === 0) { - return undefined; - } - - if (hasHeaderRenderers || hasGutterRenderer) { - return renderedItems; - } - - if (!hasAnnotationRenderer) { - return undefined; - } - - const slotSnapshot: CodeViewRenderedItem[] = []; - - for (const renderedItem of renderedItems) { - if (hasAnnotations(renderedItem.item)) { - slotSnapshot.push(renderedItem); - } - } - - return slotSnapshot.length > 0 ? slotSnapshot : undefined; -} From 467232e24f86c40f86ea4e0c2d0e281833b7d01c Mon Sep 17 00:00:00 2001 From: Amadeus Demarzi Date: Wed, 5 Aug 2026 11:50:14 -0700 Subject: [PATCH 3/3] Rename function --- packages/diffs/src/components/CodeView.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/diffs/src/components/CodeView.ts b/packages/diffs/src/components/CodeView.ts index 9ba754e9d..9a7678a6d 100644 --- a/packages/diffs/src/components/CodeView.ts +++ b/packages/diffs/src/components/CodeView.ts @@ -80,7 +80,7 @@ function getSlotItems( const slotSnapshot: CodeViewRenderedItem[] = []; for (const renderedItem of renderedItems) { - if (hasAnnotations(renderedItem.item)) { + if (hasAnnotationsAlt(renderedItem.item)) { slotSnapshot.push(renderedItem); } } @@ -4258,6 +4258,8 @@ function syncRenderedItemOrder( } } -function hasAnnotations(item: CodeViewItem): boolean { +function hasAnnotationsAlt( + item: CodeViewItem +): boolean { return (item.annotations?.length ?? 0) > 0; }