jiebi/CodeConvo huggingface dataset:
Code change:
Type: <bBug</bOpen terminal. Start typing. Note the noticeable delay in the text rendering on screen even though the cursor advances. In fact some timess the text never renders. Makes the terminal pretty unusable. VS Code version: Code - Insiders 1.82.0-insider (, 2023-08-10T05:33:20.243Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (19)</summaryExtensionVersion ------ togglehs0.1.2 vscode-eslint2.4.2 githistory0.6.20 gitlens2023.8.1005 dotnet-test-explorer0.7.8 copilot1.101.325 copilot-chat0.7. vscode-mojom0.1.4 mojom-language0.0.1 vscode-clangd0.1.24 csharp2.0.328 vscode-dotnet-runtime1.6.0 python2023.15. vscode-pylance2023.8.21 remote-wsl0.81.0 cpptools1.17.1 powershell2023.6.0 vscode-jest5.2.3 clang-format1.9.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
does changing help?
Yes. It apparently was set to auto previously. If it turn it to "off" the issue goes away.
repro's for me with set to or . does not repro for or gif: !
I can't reproduce this unfortunately
I still have a consistent repro if you want me to try anything or collect diagnostics.
Findings from looking at it together: It repro'd in Code - OSS It did not repro in xterm demo It did not repro in Code - OSS with symlinked webgl addon It repro'd after running scripts/update-xterm
I'm going to manually look through all the code that went in around rendering ~1-2 weeks ago to see if I can spot something.
Maybe it's related to Chromium.
Upstream bug filed at , thanks to
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Verified on Linux
verified on windows

Related discussion:
text: if (!neverMeasureRenderTime && this._configHelper.config.gpuAcceleration !== 'off') { this._measureRenderTime(); } <del> XtermTerminal._suggestedRendererType = 'canvas'; this._disposeOfWebglRenderer(); this._enableCanvasRenderer(); </del> <ins> this._disableWebglForThisSession(); </ins> } } <ins> private _disableWebglForThisSession() { XtermTerminal._suggestedRendererType = 'canvas'; this._disposeOfWebglRenderer(); this._enableCanvasRenderer(); } </ins> private async _enableCanvasRenderer(): Promise<void> { if (!this.raw.element || this._canvasAddon) { return;
Code change:
Type: <bBug</bOpen terminal. Start typing. Note the noticeable delay in the text rendering on screen even though the cursor advances. In fact some timess the text never renders. Makes the terminal pretty unusable. VS Code version: Code - Insiders 1.82.0-insider (, 2023-08-10T05:33:20.243Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (19)</summaryExtensionVersion ------ togglehs0.1.2 vscode-eslint2.4.2 githistory0.6.20 gitlens2023.8.1005 dotnet-test-explorer0.7.8 copilot1.101.325 copilot-chat0.7. vscode-mojom0.1.4 mojom-language0.0.1 vscode-clangd0.1.24 csharp2.0.328 vscode-dotnet-runtime1.6.0 python2023.15. vscode-pylance2023.8.21 remote-wsl0.81.0 cpptools1.17.1 powershell2023.6.0 vscode-jest5.2.3 clang-format1.9.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
does changing help?
Yes. It apparently was set to auto previously. If it turn it to "off" the issue goes away.
repro's for me with set to or . does not repro for or gif: !
I can't reproduce this unfortunately
I still have a consistent repro if you want me to try anything or collect diagnostics.
Findings from looking at it together: It repro'd in Code - OSS It did not repro in xterm demo It did not repro in Code - OSS with symlinked webgl addon It repro'd after running scripts/update-xterm
I'm going to manually look through all the code that went in around rendering ~1-2 weeks ago to see if I can spot something.
Maybe it's related to Chromium.
Upstream bug filed at , thanks to
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Verified on Linux
verified on windows

Related discussion:
text: }); suite('renderers', () => { <del> test('should re-evaluate gpu acceleration auto when the setting is changed', async () => { </del> <ins> // This is skipped until the webgl renderer bug is fixed in Chromium // https://bugs.chromium.org/p/chromium/issues/detail?id=1476475 test.skip('should re-evaluate gpu acceleration auto when the setting is changed', async () => { </ins> // Check initial state strictEqual(TestWebglAddon.isEnabled, false);
Code change:
a screen reader enabled, run some commands enter arrow left and right arrow keys to inspect the previously run command you cannot

Related discussion:
text: *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { Disposable, MutableDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { Disposable, DisposableStore, MutableDisposable } from 'vs/base/common/lifecycle'; </ins> import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { ITerminalCapabilityStore, TerminalCapability } from 'vs/platform/terminal/common/capabilities/capabilities'; import { ITerminalLogService } from 'vs/platform/terminal/common/terminal'; import type { Terminal, ITerminalAddon } from 'xterm'; <ins> import { debounce } from 'vs/base/common/decorators'; import { addDisposableListener } from 'vs/base/browser/dom'; </ins> export interface ITextAreaData { content: string;
Code change:
a screen reader enabled, run some commands enter arrow left and right arrow keys to inspect the previously run command you cannot

Related discussion:
text: export class TextAreaSyncAddon extends Disposable implements ITerminalAddon { private _terminal: Terminal | undefined; <del> private _onCursorMoveListener = this._register(new MutableDisposable()); </del> <ins> private _listeners = this._register(new MutableDisposable<DisposableStore>()); private _currentCommand: string | undefined; private _cursorX: number | undefined; </ins> activate(terminal: Terminal): void { this._terminal = terminal; if (this._accessibilityService.isScreenReaderOptimized()) { <del> this._onCursorMoveListener.value = this._terminal.onCursorMove(() => this._refreshTextArea()); </del> <ins> this._registerSyncListeners(); </ins> } }
Code change:
Toggling the command center works, but the title bar height is stuck until the window is resized. I also noticed some issues where I had to click twice to open the command center once enabled. The command center input then disappears while the command center quick pick opens.
Maybe an electron update regression

Related discussion:
text: if (event.affectsConfiguration(TitlebarPart.configCommandCenter)) { this.updateTitle(); this._onDidChangeCommandCenterVisibility.fire(); <ins> this._onDidChange.fire(undefined); </ins> } }
Code change:
Some small tweaks are needed for the new -type it should be an interface, not a type. it lacks a jsdoc comment it's not clear why can be optional?
Will correct it right away It's not something we expect all consumers to consider, as many folks may not care about applying env variables to a particular workspace. In future we may introduce other parameters, and consumers who don't care about it, can simply omit them: A consumer who only cares about shell: cc/

Related discussion:
text: getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection; } <del> export type EnvironmentVariableScope = { </del> <ins> /** * The scope object to which the environment variable collection applies. */ export interface EnvironmentVariableScope { </ins> /** * Any specific workspace folder to get collection for. */ workspaceFolder?: WorkspaceFolder; <del> }; </del> <ins> } </ins> /** * A location in the editor at which progress information can be shown. It depends on the
Code change:
the notification content is sufficiently long, insufficient height is allocated for the action buttons to grow, consequently they appear cramped and lack border radius a notification is focused the focus border radius is truncated !
The border radius issue on the buttons still occurs if the VS Code window is resized !
I cannot reproduce when resizing the window, are you sure you tested on latest? Here is the sample code I run from a command to trigger this: !
Yeah, still repros in today's insiders <img width="328" alt="image" src=""
Can you distill better steps for me to reproduce exactly into this state, ideally even running out of sources?
What I do is open the VS Code repo in VS Code Insiders without having first actioned the notifications above, you can probably trigger the notifications by starting with fresh user data and extensions dir. Then resize the VS Code window so that the notification text starts to wrap. Eventually the button radius gets cut off when I do this.
though I don't see the button's border getting cut off but I do see the whole notification border is getting cut off at the corner ! steps to reproduce prerequisite -have 2 profiles with recommended extension not installed to switch the profiles will show the above dialog click on it so that notification get's focus and see the border at the corner is not rounded properly
but for this to reproduce you need to make the window small enough that the notification itself gets smaller in width right? In that case, there is a slight chance that the text of the notification wraps to the next line and then pushing the buttons down. Notifications do not have any logic to grow larger to make room for the wrapped text because we assume that they are small enough that a user would not cause them to shrink. You would need to make the window size smaller than for this to happen (notifications are wide). I still fee the original issue is addressed, meaning that the notification when opening applies the correct size.
! !
Yes this is true, I will close and mark verified

Related discussion:
text: if (isNonEmptyArray(notification.actions && notification.actions.secondary)) { actions++; // secondary actions } <del> this.offsetHelper.style.width = `${450 /* notifications container width */ - (10 /* padding */ + 26 /* severity icon */ + (actions * (24 + 8)) /* 24px (+8px padding) per action */ - 4 /* 4px less padding for last action */)}px`; </del> <ins> this.offsetHelper.style.width = `${450 /* notifications container width */ - (10 /* padding */ + 30 /* severity icon */ + (actions * 30) /* actions */ - (Math.max(actions - 1, 0) * 4) /* less padding for actions > 1 */)}px`; </ins> // Render message into offset helper const renderedMessage = NotificationMessageRenderer.render(notification.message);
Code change:
Testing open enable search for click on a result in observe the selection is set on the input code and not on the output
Seems that navigating to the result also causes it to flicker (~13 seconds in to the sceencap).

Related discussion:
text: pinned, selection, revealIfVisible: true, <del> indexedCellOptions: element instanceof MatchInNotebook ? { index: element.cellIndex, selection: element.range() } : undefined, </del> }; try {
Code change:
Probably should print an error message instead of panicking, and maybe do that before printing the URL to connect to.
If I use port 8000 in another process, then run , it still says but it's not actually available on that port. I would expect it to pick 8001 or something.
Make sure you're binding to the same interface. serve-web always binds to 127.0.0.1. Depending on your OS and network, that may not conflict with a service listening on if localhost is ipv6.

Related discussion:
text: } None => SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), args.port), }; <ins> let builder = Server::try_bind(&addr).map_err(CodeError::CouldNotListenOnInterface)?; </ins> let mut listening = format!("Web UI available at http://{}", addr); if let Some(ct) = args.connection_token {
Code change:
Probably should print an error message instead of panicking, and maybe do that before printing the URL to connect to.
If I use port 8000 in another process, then run , it still says but it's not actually available on that port. I would expect it to pick 8001 or something.
Make sure you're binding to the same interface. serve-web always binds to 127.0.0.1. Depending on your OS and network, that may not conflict with a service listening on if localhost is ipv6.

Related discussion:
text: } ctx.log.result(listening); <del> Server::bind(&addr) </del> <ins> builder </ins> .serve(make_service_fn(|_| make_svc())) .with_graceful_shutdown(async { let _ = shutdown.wait().await;
Code change:
There's no separator line between the two components. !
Seeing the seperator: <img width="69" alt="image" src=""

Related discussion:
text: .test-output-peek-tree { color: var(--vscode-editor-foreground); <ins> border-left: 1px solid var(--vscode-panelSection-border); </ins> } .test-output-peek-tree .monaco-list-row .monaco-action-bar,
Code change:
There's no separator line between the two components. !
Seeing the seperator: <img width="69" alt="image" src=""

Related discussion:
text: import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { TerminalCapability } from 'vs/platform/terminal/common/capabilities/capabilities'; import { TerminalCapabilityStore } from 'vs/platform/terminal/common/capabilities/terminalCapabilityStore'; <ins> import { formatMessageForTerminal } from 'vs/platform/terminal/common/terminalStrings'; </ins> import { IColorTheme, IThemeService } from 'vs/platform/theme/common/themeService'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IViewPaneOptions, ViewPane } from 'vs/workbench/browser/parts/views/viewPane';
Code change:
There's no separator line between the two components. !
Seeing the seperator: <img width="69" alt="image" src=""

Related discussion:
text: terminal.xterm.write(chunk.buffer, () => pendingWrites.value--); } } else { <ins> didWriteData = true; </ins> this.writeNotice(terminal, localize('runNoOutputForPast', 'Test output is only available for new test runs.')); }
Code change:
There's no separator line between the two components. !
Seeing the seperator: <img width="69" alt="image" src=""

Related discussion:
text: } private writeNotice(terminal: IDetachedTerminalInstance, str: string) { <del> terminal.xterm.write(`x1b[2m${str}x1b[0m`); </del> <ins> terminal.xterm.write(formatMessageForTerminal(str)); </ins> } private attachTerminalToDom(terminal: IDetachedTerminalInstance) {
Code change:
a notebook where two cells take up more than the scrollable region between the two cells, note how far down the region scrolls the panel off/on between the two cells again the scroll placement is different because returns a different value. !

Related discussion:
text: })); if (this._dimension) { <del> this._list.layout(this._dimension.height, this._dimension.width); </del> <ins> this._list.layout(this.getBodyHeight(this._dimension.height), this._dimension.width); </ins> } else { this._list.layout(); }
Code change:
a notebook where two cells take up more than the scrollable region between the two cells, note how far down the region scrolls the panel off/on between the two cells again the scroll placement is different because returns a different value. !

Related discussion:
text: return this._scrollBeyondLastLine && !this.isEmbedded; } <ins> private getBodyHeight(dimensionHeight: number) { return Math.max(dimensionHeight - (this._notebookTopToolbar?.useGlobalToolbar ? /** Toolbar height */ 26 : 0), 0); } </ins> layout(dimension: DOM.Dimension, shadowElement?: HTMLElement, position?: DOM.IDomPosition): void { if (!shadowElement && this._shadowElementViewInfo === null) { this._dimension = dimension;
Code change:
a notebook where two cells take up more than the scrollable region between the two cells, note how far down the region scrolls the panel off/on between the two cells again the scroll placement is different because returns a different value. !

Related discussion:
text: this._dimension = dimension; this._position = position; <del> const newBodyHeight = Math.max(dimension.height - (this._notebookTopToolbar?.useGlobalToolbar ? /** Toolbar height */ 26 : 0), 0); </del> <ins> const newBodyHeight = this.getBodyHeight(dimension.height); </ins> DOM.size(this._body, dimension.width, newBodyHeight); const topInserToolbarHeight = this._notebookOptions.computeTopInsertToolbarHeight(this.viewModel?.viewType);
Code change:
I'm on a mac. setting it to be works though
it started to work the moment I had at least one comment in the editor
did the original keybinding work after you comment? Even before adding a comment I'm seeing the command work.
that keybinding still doesn't work for me (maybe my keyboard or something)...? when I use a different keybinding, it does try to run the command, but I'm now seeing this error. !
I have confirmed that the default keyboard shortcut works on mac: . There's probably something up with your keybindings that's causing this. You could try the "Developer: Toggle Keyboard Shortcuts Troubleshooting" command and see what it outputs. I'm fixing this error though:

Related discussion:
text: return range; } <del> return decorations[0].getActiveRange() ?? undefined; </del> <ins> return (decorations.length > 0 ? (decorations[0].getActiveRange() ?? undefined) : undefined); </ins> } public dispose(): void {
Code change:
Testing Followed the steps to turn on the debug toolbar with commandCenter options. However, when the debugging started, clicking the area around the directory name did not trigger 'search files'. (the blank space at the right side of 'vscode-python' in terms of the attached screenshot. I was able to trigger 'search files' only when pressing specifically on the directory name, in this case, 'vscode-python. ++ Nice feature by the way! <img width="983" alt="Screenshot 2023-09-26 at 10 42 11 AM" src=""<img width="512" alt="Screenshot 2023-09-26 at 11 02 46 AM" src=""

Related discussion:
text: @IKeybindingService private _keybindingService: IKeybindingService, @IInstantiationService private _instaService: IInstantiationService, ) { <del> super(undefined, _submenu.actions[0], options); </del> <ins> super(undefined, _submenu.actions.find(action => action.id === 'workbench.action.quickOpenWithModes') ?? _submenu.actions[0], options); </ins> } override render(container: HTMLElement): void {
Code change:
Testing Followed the steps to turn on the debug toolbar with commandCenter options. However, when the debugging started, clicking the area around the directory name did not trigger 'search files'. (the blank space at the right side of 'vscode-python' in terms of the attached screenshot. I was able to trigger 'search files' only when pressing specifically on the directory name, in this case, 'vscode-python. ++ Nice feature by the way! <img width="983" alt="Screenshot 2023-09-26 at 10 42 11 AM" src=""<img width="512" alt="Screenshot 2023-09-26 at 11 02 46 AM" src=""

Related discussion:
text: }); <ins> const CONTEXT_TOOLBAR_COMMAND_CENTER = ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter'); </ins> MenuRegistry.appendMenuItem(MenuId.CommandCenterCenter, { submenu: MenuId.DebugToolBar, title: 'Debug', icon: Codicon.debug, order: 1, <del> when: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter')) </del> <ins> when: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, CONTEXT_TOOLBAR_COMMAND_CENTER) </ins> }); registerDebugToolBarItem(CONTINUE_ID, CONTINUE_LABEL, 10, icons.debugContinue, CONTEXT_DEBUG_STATE.isEqualTo('stopped'));
Code change:
Testing Followed the steps to turn on the debug toolbar with commandCenter options. However, when the debugging started, clicking the area around the directory name did not trigger 'search files'. (the blank space at the right side of 'vscode-python' in terms of the attached screenshot. I was able to trigger 'search files' only when pressing specifically on the directory name, in this case, 'vscode-python. ++ Nice feature by the way! <img width="983" alt="Screenshot 2023-09-26 at 10 42 11 AM" src=""<img width="512" alt="Screenshot 2023-09-26 at 11 02 46 AM" src=""

Related discussion:
text: registerDebugToolBarItem(RESTART_SESSION_ID, RESTART_LABEL, 60, icons.debugRestart); registerDebugToolBarItem(STEP_BACK_ID, localize('stepBackDebug', "Step Back"), 50, icons.debugStepBack, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_DEBUG_STATE.isEqualTo('stopped')); registerDebugToolBarItem(REVERSE_CONTINUE_ID, localize('reverseContinue', "Reverse"), 55, icons.debugReverseContinue, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_DEBUG_STATE.isEqualTo('stopped')); <del> registerDebugToolBarItem(FOCUS_SESSION_ID, FOCUS_SESSION_LABEL, 100, Codicon.listTree, CONTEXT_MULTI_SESSION_DEBUG); </del> <ins> registerDebugToolBarItem(FOCUS_SESSION_ID, FOCUS_SESSION_LABEL, 100, Codicon.listTree, ContextKeyExpr.and(CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_TOOLBAR_COMMAND_CENTER.negate())); </ins> MenuRegistry.appendMenuItem(MenuId.DebugToolBarStop, { group: 'navigation',
Code change:
Testing I was expecting quick fixes for the whole line to be included, ranked by distance to the cursor, up to a certain maximum !
Yep! That was one thing I was experimenting with, and atm it does just find the closest one. Played around with allowing all quickfixes as well, but was unsure what would feel better. Will likely work on a version where we show all potential quickfixes in the line.

Related discussion:
text: Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({ ...editorConfigurationBaseNode, properties: { <del> 'editor.codeActionWidget.includeNearbyQuickfixes': { </del> <ins> 'editor.codeActionWidget.includeNearbyQuickFixes': { </ins> type: 'boolean', scope: ConfigurationScope.LANGUAGE_OVERRIDABLE, <del> description: nls.localize('includeNearbyQuickfixes', "Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."), </del> <ins> description: nls.localize('includeNearbyQuickFixes', "Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."), </ins> default: true, }, }
Code change:
Testing I was expecting quick fixes for the whole line to be included, ranked by distance to the cursor, up to a certain maximum !
Yep! That was one thing I was experimenting with, and atm it does just find the closest one. Played around with allowing all quickfixes as well, but was unsure what would feel better. Will likely work on a version where we show all potential quickfixes in the line.

Related discussion:
text: const currPosition = trigger.selection.getPosition(); let trackedPosition = currPosition; let distance = Number.MAX_VALUE; <del> let toBeModified = false; </del> <ins> const currentActions = [...codeActionSet.validActions]; </ins> for (const marker of allMarkers) { const col = marker.endColumn;