Change:
Type: <bBug</bThis week I was pair programming with a collegue, during debugging when a breakpoint is hit the screen glitches and flickers, that is, all code below the breakpoint moves and flickers. It was on a Mac so I thought is was a Mac issue, but today on my own laptop (Windows 11, latest updates, latest VSCode, in WSL) I notice the same. It seems to disappear when you disable co-pilot, so somehow copilot wants to do something during debugging. VS Code version: Code 1.88.1 (, 2024-04-10T17:41:02.734Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.15.146.1-microsoft-standard-WSL2 Remote OS version: Linux x64 5.15.146.1-microsoft-standard-WSL2 Remote OS version: Linux x64 5.15.146.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (34)</summaryExtensionVersion ------ remote-containers0.354.0 remote-ssh0.110.1 remote-ssh-edit0.86.0 remote-wsl0.88.0 vscode-remote-extensionpack0.25.0 remote-explorer0.4.3 remote-server1.5.1 asciidoctor-vscode3.2.3 vscode-eslint2.4.4 python-environment-manager1.2.4 gitlens14.9.0 prettier-vscode10.4.0 flow-for-vscode2.2.1 copilot1.180.0 copilot-chat0.14.1 vscode-github-actions0.26.2 rainbow-csv3.11.0 vscode-docker1.29.0 debugpy2024.4.0 pylint2023.10.1 python2024.4.1 vscode-pylance2024.4.1 sarif-viewer3.4.4 vscode-jest6.2.4 java1.29.0 vscode-yaml1.14.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.3.1 vscode-gradle3.13.5 vscode-java-debug0.57.0 vscode-java-dependency0.23.6 vscode-java-pack0.26.0 vscode-java-test0.41.0 vscode-maven0.44.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
That's weird. I'm guessing that disabling works around it as well. looks like this code might have changed?
I've not changed the rendering, it's probably an existing bug.
I have the same issue when pausing on any breakpoint in my PHP code. Makes it extremely-difficult to near-impossible to perform any debugging. Here's video of it occurring. PC Info Processor Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 2.21 GHz Installed RAM 16.0 GB (15.8 GB usable) System type 64-bit operating system, x64-based processor OS Info Edition Windows 11 Home Version 23H2 Installed on ‎01-‎Nov-‎22 OS build .3447 Experience Windows Feature Experience Pack 1000..1000.0 VSCode Info Version: 1.89.0 (user setup) Commit: Date: 2024-05-01T02:09:22.859Z Electron: 28.2.8 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. I tried rolling back to VSCode version 1.87.2 manually but I had the same glitches on that version. I just tried solution of disabling which worked to resolve this bug for me and it no longer stutters.
We re-evaluate inline values based on a number of events, including changes to the editor and 'invalidated' events from the debugee. I'm guessing folks have some extension that started triggering aggressive updates somehow. Running "Help: Start Extension Bisect" may help narrow this down if it's an extension other than the debugger. I'll make a change to avoid flickering when updates happen.
I also made a fix for a separate issue, but seen in the videos, where inline values appearing when word wrap is on can change the vertical position of the cursor on screen. We now preserve it.
This 'some extension' is co-pilot, the behavior stops when you disable it. Great you fixed it!
what's the best way to verify this?
on something in the REPL you don't see them 'flash'
To reproduce the error you need a multi-line text, here it glitches: ! Now if I use the full width of my monitor there is no glitch: !

Discussion:
import { URI } from 'vs/base/common/uri'; import { CoreEditingCommands } from 'vs/editor/browser/coreCommands'; import { ICodeEditor, IEditorMouseEvent, IPartialEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; <del> import { IEditorHoverOptions } from 'vs/editor/common/config/editorOptions'; </del> <ins> import { EditorOption, IEditorHoverOptions } from 'vs/editor/common/config/editorOptions'; </ins> import { EditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { DEFAULT_WORD_REGEXP } from 'vs/editor/common/core/wordHelper'; <ins> import { ScrollType } from 'vs/editor/common/editorCommon'; </ins> import { StandardTokenType } from 'vs/editor/common/encodedTokenAttributes'; import { InlineValue, InlineValueContext } from 'vs/editor/common/languages'; import { IModelDeltaDecoration, ITextModel, InjectedTextCursorStops } from 'vs/editor/common/model';

return new RunOnceScheduler( () => { this.displayedStore.clear(); <ins> this.oldDecorations.clear(); </ins> }, 100 );

decoration => `${decoration.range.startLineNumber}:${decoration?.options.after?.content}`); } <del> if (!cts.token.isCancellationRequested) { this.oldDecorations.set(allDecorations); this.displayedStore.add(toDisposable(() => this.oldDecorations.clear())); </del> <ins> if (cts.token.isCancellationRequested) { return; } // If word wrap is on, application of inline decorations may change the scroll position. // Ensure the cursor maintains its vertical position relative to the viewport when // we apply decorations. let preservePosition: { position: Position; top: number } | undefined; if (this.editor.getOption(EditorOption.wordWrap) !== 'off') { const position = this.editor.getPosition(); if (position && this.editor.getVisibleRanges().some(r => r.containsPosition(position))) { preservePosition = { position, top: this.editor.getTopForPosition(position.lineNumber, position.column) }; } } this.oldDecorations.set(allDecorations); if (preservePosition) { const top = this.editor.getTopForPosition(preservePosition.position.lineNumber, preservePosition.position.column); this.editor.setScrollTop(this.editor.getScrollTop() - (preservePosition.top - top), ScrollType.Immediate); </ins> } }