jiebi/CodeConvo huggingface dataset:
Change:
fixture = document.body; }); <del> // test('TerminalConfigHelper - getFont fontFamily', async () => { // 	const configurationService = new TestConfigurationService(); // 	await configurationService.setUserConfiguration('editor', { fontFamily: 'foo' }); // 	await configurationService.setUserConfiguration('terminal', { integrated: { fontFamily: 'bar' } }); // 	const configHelper = new TerminalConfigHelper(configurationService, null!, null!, null!); // 	configHelper.panelContainer = fixture; // 	assert.equal(configHelper.getFont().fontFamily, 'bar', 'terminal.integrated.fontFamily should be selected over editor.fontFamily'); // }); </del> <ins> test('TerminalConfigHelper - getFont fontFamily', async () => { const configurationService = new TestConfigurationService(); await configurationService.setUserConfiguration('editor', { fontFamily: 'foo' }); await configurationService.setUserConfiguration('terminal', { integrated: { fontFamily: 'bar' } }); const configHelper = new TerminalConfigHelper(configurationService, null!, null!, null!, null!, null!, null!); configHelper.panelContainer = fixture; assert.equal(configHelper.getFont().fontFamily, 'bar', 'terminal.integrated.fontFamily should be selected over editor.fontFamily'); }); </ins> test('TerminalConfigHelper - getFont fontFamily (Linux Fedora)', async () => { const configurationService = new TestConfigurationService();

Discussion:
failed in I have pushed a commit to comment out this test
Let's fix this or close it if already fixed.
Change:
return maxProcessId; } <del> private updateSectionCollapsedState(shouldExpand: boolean, body: HTMLElement, twistie: HTMLImageElement, sectionName: string) { </del> <ins> private updateSectionCollapsedState(shouldExpand: boolean, body: HTMLElement, twistie: CodiconLabel, sectionName: string) { </ins> if (shouldExpand) { body.classList.remove('hidden'); this.collapsedStateCache.set(sectionName, false); <del> twistie.src = './media/expanded.svg'; </del> <ins> twistie.text = '$(chevron-down)'; </ins> } else { body.classList.add('hidden'); this.collapsedStateCache.set(sectionName, true); <del> twistie.src = './media/collapsed.svg'; </del> <ins> twistie.text = '$(chevron-right)'; </ins> } }

Discussion:
Noticed how the process explorer is bundling and still. Can we not use Codicons for this? //cc
Oh this seems to be used in the issue reporter, not process explorer. But not sure how to actually see it...
are we actually using these icons? I'm not seeing it: !
it looks like these are only used when VSCode is connected to a remote to show the remote processes as well. I didn't even know we had that, pretty cool: ! Anyhow, my request still seems valid.
PR up at !
Change:
import { EDITOR_FONT_DEFAULTS } from 'vs/editor/common/config/editorOptions'; import { registerColors } from './terminalColorRegistry'; import { NavigateUpAction, NavigateDownAction, NavigateLeftAction, NavigateRightAction } from "vs/workbench/electron-browser/actions"; <del> import { QUICKOPEN_ACTION_ID } from "vs/workbench/browser/parts/quickopen/quickopen"; </del> <ins> import { QUICKOPEN_ACTION_ID, getQuickNavigateHandler } from "vs/workbench/browser/parts/quickopen/quickopen"; </ins> import { IQuickOpenRegistry, Extensions as QuickOpenExtensions, QuickOpenHandlerDescriptor } from 'vs/workbench/browser/quickopen'; <ins> import { Scope, IActionBarRegistry, Extensions as ActionBarExtensions } from 'vs/workbench/browser/actions'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; </ins> <del> export const TERMINAL_PICKER_PREFIX = 'term '; </del> const quickOpenRegistry = (<IQuickOpenRegistry>Registry.as(QuickOpenExtensions.Quickopen)); <ins> const inTerminalsPicker = 'inTerminalPicker'; </ins> quickOpenRegistry.registerQuickOpenHandler( new QuickOpenHandlerDescriptor( 'vs/workbench/parts/terminal/browser/terminalQuickOpen', 'TerminalPickerHandler', TERMINAL_PICKER_PREFIX, <del> null, </del> <ins> inTerminalsPicker, </ins> nls.localize('quickOpen.terminal', "Show All Opened Terminals") ) ); <ins> const quickOpenNavigateNextInTerminalPickerId = 'workbench.action.quickOpenNavigateNextInTerminalPicker'; CommandsRegistry.registerCommand( quickOpenNavigateNextInTerminalPickerId, { handler: getQuickNavigateHandler(quickOpenNavigateNextInTerminalPickerId, true) }); const quickOpenNavigatePreviousInTerminalPickerId = 'workbench.action.quickOpenNavigatePreviousInTerminalPicker'; CommandsRegistry.registerCommand( quickOpenNavigatePreviousInTerminalPickerId, { handler: getQuickNavigateHandler(quickOpenNavigatePreviousInTerminalPickerId, false) }); const registry = <IWorkbenchActionRegistry>Registry.as(ActionExtensions.WorkbenchActions); registry.registerWorkbenchAction(new SyncActionDescriptor(QuickOpenTermAction, QuickOpenTermAction.ID, QuickOpenTermAction.LABEL), 'Quick Open Terminal'); const actionBarRegistry = Registry.as<IActionBarRegistry>(ActionBarExtensions.Actionbar); actionBarRegistry.registerActionBarContributor(Scope.VIEWER, QuickOpenActionTermContributor); </ins> let configurationRegistry = <IConfigurationRegistry>Registry.as(Extensions.Configuration); configurationRegistry.registerConfiguration({ 'id': 'terminal',

Discussion:
Needs one for some keybindings
Also should add a rename terminal button to each entry for easy discoverability
Change:
id: VIEWLET_ID, name: nls.localize('run', "Run"), ctorDescriptor: new SyncDescriptor(DebugViewPaneContainer), <del> icon: 'codicon-debug-alt-2', </del> <ins> icon: Codicon.debugAlt.classNames, </ins> alwaysUseContainerInfo: true, order: 2 }, ViewContainerLocation.Sidebar);

Discussion:
Today I see no debug icon in the activity bar.
Yeah, I also can't see !
Removed in Looks like not longer in font and has different character code but it's actually in font
Sorry about that, I must've copied the wrong unicode character when I was cleaning up the unused debug icons. Looking into PR right now.
Change:
// See https://github.com/microsoft/vscode/issues/140339 // TODO: Doing a second layout of the hover after force rendering the editor <del> this._editor.layoutContentWidget(this); </del> this.onContentsChanged(); if (visibleData.stoleFocus) {

Discussion:
! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at
Change:
export class LivePreviewStrategy extends LiveStrategy { <del> private readonly _diffZone: InlineChatLivePreviewWidget; private readonly _previewZone: InlineChatFileCreatePreviewWidget; </del> <ins> private readonly _diffZone: Lazy<InlineChatLivePreviewWidget>; private readonly _previewZone: Lazy<InlineChatFileCreatePreviewWidget>; </ins> constructor( session: Session,

Discussion:
Steps to Reproduce: Copilot Chat the file in VS Code +i It takes like 2s for the UI to show up. One time when I was doing a lot with VS Code it took so long (like 10s) that I thought I didn't have the extension installed. Not sure if this is on the UI side or the extension side, but even still, I think the UI should be instant (even if it's perceived fastness) since all I'm seeing is an input box that I will type in.
I have done a bunch of tricks, most importantly to showing the UI while asking the extension to create a session. Also the UI is more lazily created which helps. However, once there are changes the bottleneck is setting up the embedded diff editor. There isn't much I can do about it <img width="726" alt="Screenshot 2023-06-15 at 16 10 35" src=""
Change:
break; } case ProtocolMessageType.Ack: { <del> // nothing to do </del> <ins> // nothing to do, .ack is handled above already </ins> break; } case ProtocolMessageType.Disconnect: {

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --Background: Modern reverse proxies like nginx or cloudflare use timeouts for dormant websocket connections. For nginx this defaults to 60s and for Cloudflare to 100s. In case of Cloudflare, this is not configurable for non-enterpise users. Due to the fixes in , the management connection is now typically being idle for extended periods of time. If the web-socket connection is being terminated by the reverse proxy, even if it can be reestablished immediately, a modal dialog is being shown, which disturbs the user immensely. For reference see In order to support Cloudflare it is essential, that we either implement a keep-alive ping (my proposal would by every 45s by default), or alternatively, make it so an immediate reconnect does not cause any negative consequences for the user.
any insights here?
<!-- 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!
Version: 1.71.0-insider Commit: Date: 2022-08-26T23:24:52.456Z Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 /verified I do no longer experience regular reconnects every 100 seconds behind cloudflare with the build above.
Change:
UpdatesNotConfigured, CorruptDownload, MissingHomeDirectory, <del> CommandFailed </del> <ins> CommandFailed, OAuthError </ins> ); impl From<reqwest::Error> for AnyError {

Discussion:
Windows 11 Latest Insiders WSL with Ubuntu 20.04.5 LTS I am trying to get and run the insiders code cli on a WSL Ubuntu 20.04 instance. the linux x64 insiders cli from here: and save the file to someplace in your WSL Ubuntu 20.04 folder : the file is the same name as the stable x64 version, so i'm not sure if am really getting insiders. , note the time stamp in the future error disc i see a executable, why is there a code-insiders`? see 2 above the GitHub login dance Result - it hangs in the terminal, no URL is displayed, here's the output from (which repeats):
can you try again with today's Insiders build of the CLI? It should print more detailed information about the error, if any, that's happening.
works great today! i was able to log in, get the URL, and hit it from another machine. still, why is the executable and not ? I see I can use the option but that breaks my flow (always use from the terminal)
That's a to fix, tracked in I'll go ahead and close this issue for now. I have a feeling it was something on GH's end, but at least next time we see this, we should be able to get more info.
Change:
const stickyEditors = editors.filter(e => this.model.isSticky(e)); const unstickyEditors = editors.filter(e => !this.model.isSticky(e)); <ins> const didActiveControlChange = this.didActiveControlChange(); </ins> const didChangeOpenEditorsSticky = this.stickyEditorTabsControl.openEditors(stickyEditors); const didChangeOpenEditorsUnSticky = this.unstickyEditorTabsControl.openEditors(unstickyEditors); <del> const didChange = didChangeOpenEditorsSticky || didChangeOpenEditorsUnSticky; </del> <ins> const didChange = didChangeOpenEditorsSticky || didChangeOpenEditorsUnSticky || didActiveControlChange; </ins> if (didChange) { this.handleOpenedEditors(); }

Discussion:
Type: <bBug</bfile A from EXPLORER tab with file A file B from EXPLORER -breadcrumb shows file B path (correct) on the pinned tab with file A -breadcrumb shows file B path but should file A This is the minimal case. When I have multiple pinned tabs and open other files, the breadcrump gets more random. UPDATE: Looks like the bug only comes out if this setting is set to true: VS Code version: Code 1.92.2 (, 2024-08-14T17:29:30.058Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.15.153.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ macos-modern-theme2.3.19 better-cpp-syntax1.27.1 remote-containers0.380.0 remote-ssh0.113.1 remote-ssh-edit0.86.0 remote-wsl0.88.2 vscode-remote-extensionpack0.25.0 remote-explorer0.4.3 remote-server1.5.2 vscode-clangd0.1.29 regionfolder1.0.22 cmake-tools1.18.44 cpptools1.21.6 workspace-include-what-you-use0.0.3 cmake0.0.17 (4 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
This doesn't reproduce for me. Please try without extensions enabled and without custom settings
I turned off extensions and custom settings. I nailed it down to this setting in It appears that the bug is reproducible only if is true.
can you help here? It seems that pinned, extra-row items don't make the call to the breadcrumbs controls, like how it is done for instance for the
Thanks for steps. could you take a look?
Thanks for reporting. When switching to the last previous active tab of the other tab bar it wasn't updating the breadcrumbs. Made a fix
<!-- 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!
Still doesn't work correctly on current insiders version. Version: 1.93.0-insider (user setup) Commit: Date: 2024-08-23T06:45:56.108Z Electron: 30.4.0 ElectronBuildId: Chromium: 124.0.6367.243 20.15.1 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0.
Change:
} } <ins> export class TestingSortByDurationAction extends ViewAction<TestingExplorerView> { public static readonly ID = 'testing.sortByDuration'; constructor() { super({ id: TestingSortByDurationAction.ID, viewId: Testing.ExplorerViewId, title: localize('testing.sortByDuration', "Sort by Duration"), toggled: TestingContextKeys.viewSorting.isEqualTo(TestExplorerViewSorting.ByDuration), menu: { id: MenuId.ViewTitle, order: ActionOrder.Sort, group: 'sortBy', when: ContextKeyExpr.equals('view', Testing.ExplorerViewId) } }); } /** * @override */ public runInView(_accessor: ServicesAccessor, view: TestingExplorerView) { view.viewModel.viewSorting = TestExplorerViewSorting.ByDuration; } } </ins> export class ShowMostRecentOutputAction extends Action2 { public static readonly ID = 'testing.showMostRecentOutput'; constructor() {

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --It would be ideal if the Testing user interface would allow to sort/filter based on duration. Use case: I have a large number of tests in my project and they're slow, I want to sort by duration to identify long running tests. !
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.595 --- <!-- score: 0.493 --<!-- potentialduplicatescomment --
I want to work on this shall I give it a try ?
Can I get a little help here ? I think I am not able to find the UI in the app. Is this screen capture same as above ? (Left panel) ! I made two tests locally, but I am not seeing the time it took to run the tests ?
You'll need to use to make the Test Explorer use the native experience.
Hey admin, i have just started my open source contribution journey. Can you assign this task to me? so that i can start working on it.
Feel free to submit a PR
Hey Conor, can I work on this issue
, I found that following changes will be needed adding a class to adding to export const enum TestExplorerViewSorting { ByLocation = 'location', ByStatus = 'status', } inside the file
The TestExplorerView is where it happens. You can do a "find all references" on and that'll give you a good indication of places to update
There is such a line for sort ByLocation , but not there for ByStatus , why is it so
What changes should be made to this file , please help me out
Have a pull request for this:
Change:
position: OverviewRulerLane.Center }, collapseOnReplaceEdit: true, <del> linesDecorationsClassName: `comment-range-glyph comment-thread` </del> <ins> linesDecorationsClassName: `comment-range-glyph comment-thread${this._threadState === CommentThreadState.Unresolved ? '-unresolved' : ''}` </ins> }; return ModelDecorationOptions.createDynamic(decorationOptions); } <del> setLineNumber(lineNumber: number): void { this._lineNumber = lineNumber; </del> <ins> setThreadState(state: CommentThreadState | undefined): void { if (this._threadState !== state) { this._threadState = state; this._commentsOptions = this.createDecorationOptions(); this._updateDecorations(); } } private _updateDecorations(): void { </ins> const commentsDecorations = [{ range: { <del> startLineNumber: lineNumber, startColumn: 1, endLineNumber: lineNumber, endColumn: 1 </del> <ins> startLineNumber: this._lineNumber, startColumn: 1, endLineNumber: this._lineNumber, endColumn: 1 </ins> }, options: this._commentsOptions }];

Discussion:
Comments in the editor have a different color based on their resolved status. We could do something similar for the icon in the gutter, and make obvious which comment is resolved even when comments are folded. Maybe change the icon color? Or use a different icon? (also related to )
Example of how it currently looks: ! Example with adjusted colours: ! Note that colour alone is not a full solution since it is not that accessible, but I think it should be included in the final solution.
A different icon/unicode character for resolved would be good here.
Let's get done first.
Change:
private _buildContent(): void { const content = []; content.push(this._descriptionForCommand(TerminalCommandId.FocusAccessibleBuffer, focusAccessibleBufferNls, focusAccessibleBufferNoKb)); <ins> if (this._instance.shellType === WindowsShellType.CommandPrompt) { content.push(commandPrompt); } </ins> if (this._hasShellIntegration) { content.push(shellIntegration); content.push('- ' + this._descriptionForCommand(TerminalCommandId.RunRecentCommand, runRecentCommand, runRecentCommandNoKb) + 'n- ' + this._descriptionForCommand(TerminalCommandId.GoToRecentDirectory, goToRecent, goToRecentNoKb));

Discussion:
Shell integration offers many improvements to the terminal experience and makes it more accessible via commands like . reported that he and many others use which does not have shell integration. Should we include a hint in the help menu that the experience could be better when we detect a screen reader & ?
I think this will improve the discoverability! Voting for this idea.
On windows, Create a terminal - via for example. run . Verify that you see a message about migrating to use powershell.
Change:
quickPickItems.push(kernel); }); <del> quickPickItems.push({ type: 'separator' }); </del> <ins> const shouldAutoRun = quickPickItems.length === 0; if (quickPickItems.length > 0) { quickPickItems.push({ type: 'separator' }); } </ins> // select another kernel quick pick quickPickItems.push({ id: 'selectAnother', label: localize('selectAnotherKernel.more', "Select Another Kernel..."), <ins> autoRun: shouldAutoRun </ins> }); return quickPickItems;

Discussion:
When we only have a couple of notebook controllers created for a notebook type, without any kernel detection task or kernel source commands, the "Select Another Kernel" should not show.
I have no kernels in the MRU, clicking Select Kernel brings me to this quickpick, and clicking the back button here does nothing--I think it shouldn't be shown in this scenario ! I have the Jupyter extension installed but not the Python extension installed, with the MRU picker enabled, the Select Kernel dropdown spins forever like this: !
Change:
} function getOutputForCommand(command: ICurrentPartialCommand, buffer: IBuffer): string | undefined { <del> const startLine = command.commandStartMarker!.line; </del> <ins> const startLine = command.commandExecutedMarker!.line; </ins> const endLine = command.commandFinishedMarker!.line; let output = ''; <del> for (let i = startLine; i <= endLine; i++) { </del> <ins> for (let i = startLine; i < endLine; i++) { </ins> output += buffer.getLine(i)?.translateToString() + 'n'; } return output === '' ? undefined : output;

Discussion:
Testing I feel like I would mostly open output as a "one-off" editor to inspect test failures, for example. Having the prompt whenever I want to close the editor, since it's marked as untitled, is annoying. Instead, should it be opened as an ordinary read-only file which allows the user to if they want to keep it?
do you know how to do this in core? I also want to know how to do it in extensions for a similar problem in luna paint.
You can register an , I do that for test output: Alternatively (and in extensions) you can register a readonly FileSystemProvider.
Thanks, I'm a little surprised there's no option for extensions in as it seems like a common thing people would want to do.