jiebi/CodeConvo huggingface dataset:
Change:
public static description = 'comment-glyph-widget'; private _lineNumber!: number; private _editor: ICodeEditor; <ins> private _threadState: CommentThreadState | undefined; </ins> private readonly _commentsDecorations: IEditorDecorationsCollection; private _commentsOptions: ModelDecorationOptions;

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:
if (this._terminalService.getReconnectedTerminals('Task')?.length) { this._attemptTaskReconnection(); } else { <del> this._register(this._terminalService.onDidChangeConnectionState(async () => { await this._terminalService.whenConnected; </del> <ins> this._terminalService.whenConnected.then(() => { </ins> if (this._terminalService.getReconnectedTerminals('Task')?.length) { this._attemptTaskReconnection(); <ins> } else { this._tasksReconnected = true; </ins> } <del> })); </del> <ins> }); </ins> } this._upgrade(); }

Discussion:
Testing default build task in VS Code repo running (I also installed the Java extension pack like in ) window Ctrl+Shift+B a few times :bug: get two sets of default build tasks. They are both reconnected, if I edit a file and hit save, both sets of tasks display log updates !
Duplicate
Change:
import { IWorkbenchAssignmentService } from 'vs/workbench/services/assignment/common/assignmentService'; import { IProductService } from 'vs/platform/product/common/productService'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; <ins> import { registerNavigableContainer } from 'vs/workbench/browser/actions/widgetNavigationCommands'; </ins> export const enum SettingsFocusContext { Search,

Discussion:
Testing Not sure if the settings editor is intended to support this, but it seems very similar to the other places that do support it.
I'll try to fix that, if it should be supported
Change:
return result; } <ins> private async showErrorNotification(type: 'error' | 'warning' | 'information', message: string, options: MessageOptions, choices: Map<string, () => void>): Promise<void> { let result: string | undefined; const allChoices = Array.from(choices.keys()); switch (type) { case 'error': result = await window.showErrorMessage(message, options, ...allChoices); break; case 'warning': result = await window.showWarningMessage(message, options, ...allChoices); break; case 'information': result = await window.showInformationMessage(message, options, ...allChoices); break; } if (result) { const resultFn = choices.get(result); resultFn?.(); } } </ins> private getSCMResource(uri?: Uri): Resource | undefined { uri = uri ? uri : (window.activeTextEditor && window.activeTextEditor.document.uri);

Discussion:
commit action button is doing “Commit & Sync” is a conflicting change on the remote the file, write a commit message, and CTRL + ENTER succeeded, but the sync operation results in a merge conflict
Change:
private setActiveNotebook() { const current = this.activeNotebook; const activeEditorPane = this.editorService.activeEditorPane; <del> if (activeEditorPane && activeEditorPane.getId() === 'workbench.editor.notebook') { </del> <ins> if (activeEditorPane?.getId() === 'workbench.editor.notebook') { </ins> const notebookDocument = getNotebookEditorFromEditorPane(activeEditorPane)?.getViewModel()?.notebookDocument; this.activeNotebook = notebookDocument; }

Discussion:
Steps to Reproduce: a notebook and put in a cell and run it to establish a kernel for that notebook vscode and run the cell before the kernel is auto-selected :bug: notebook variable view will not initialize
HI is this a candidate? This issue is assigned to the recovery 2 milestone, but it does not have a candidate label and there appears to only be one PR to main. We will discuss this issue in standup and decide if this should be merged to the release branch.
As mentioned in a private discussion, if we accept this candidate recovery release will be held on Monday which is when the next endgame starts. To avoid overlap of the two endgames, this fix should be included instead in the next release.
Change:
async stepBack(args: DebugProtocol.StepBackArguments): Promise<DebugProtocol.StepBackResponse | undefined> { if (this.capabilities.supportsStepBack) { <ins> this.stoppedSinceLastStep = false; </ins> const response = await this.send('stepBack', args); <del> this.fireSimulatedContinuedEvent(args.threadId); </del> <ins> if (!this.stoppedSinceLastStep) { this.fireSimulatedContinuedEvent(args.threadId); } </ins> return response; } return Promise.reject(new Error('stepBack not supported'));

Discussion:
Stepping using the debug adapter that I helped develop has been broken by a VS Code change between 1.78.2 and 1.79.0. I used a to log the messages sent back and forth using the same extension version, but different VS Code versions. I attached the logs below. After diffing the two files, the only difference is that the "scopes" request isn't sent to the adapter after the "next" request reports a stopped event. The end result is that the debugging UI in VS Code is stuck in "running" mode even though the debug adapter is stopped, and the user has no way to advance. See
I think this is related to the fact that you send the "stopped" event before the "next" response. We should be able to support that but as a workaround you could respond to "next" before stopping the debugger.
Thanks for the quick response I will look into that workaround. In what cases is tit required? Any type of step?
I see the issue but it will be too much of a risky change to get into our next stable release. I will try to address it in July but I'd recommend working around it in your extension.
I understand. I implemented the workaround in my extension and initial tests show that it works, so thanks for making me aware of that.
For my own reference, I think it should be ok to do immediately instead of waiting for the response.
Hi what are some verification steps for this issue?
<!-- 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!
I verified this by hacking mock-debug, but are you able to verify the change in Insiders, or have you moved on to not rely on that behavior anymore?
I've modified my extension to implement your workaround. I can download an old version of the extension to test this if you want.
It's ok, I think I've got it now
Change:
public async $register(label: string, log: boolean, file: UriComponents, languageId: string, extensionId: string): Promise<string> { const idCounter = (MainThreadOutputService._extensionIdPool.get(extensionId) || 0) + 1; MainThreadOutputService._extensionIdPool.set(extensionId, idCounter); <del> const id = `extension-output-${extensionId}-#${idCounter}`; </del> <ins> const id = `extension-output-${extensionId}-#${idCounter}-${label}`; </ins> Registry.as<IOutputChannelRegistry>(Extensions.OutputChannels).registerChannel({ id, label, file: URI.revive(file), log, languageId }); this._register(toDisposable(() => this.$dispose(id)));

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. --This will be useful to my extension. Thanks.
Please describe your use case.
I have an extension with 2 output channels, and I need to switch between them for different situations. But if the user navigates away, I don't want to bother him. So I need code like:
Not sure if I understand your use case, what do you mean by navigates away? Can you be more clear in explaining your use case?
I have an extension with 2 output channels, one for info and one for errors. If the user looks at the info channel and there are errors, I want to switch to the errors channel for him. If there are no more errors and he's looking at the errors channel, I want to switch to the info channel. But if the user looks at other channel, or doesn't look at any channel at all, I don't want to bring up my channel to him. I hope this is clearer.
Did you try using api? Output channel is an editor internally and opened output channel can be accessed from the above api
I didn't try. How can I know a TextEditor is the output channel? How can I get the currently open output channel from the TextEditor object?
From its URI
So I tried and I see this object: I wish there was the output name instead of , then it could help. As it is now, the number doesn't allow to differentiate between the two, since I can't know which was created first (and I'd rather not track it). Maybe it can be improved to include the output name? Maybe something like .
I think is a good reasonable workaround for this. So I would close this as won't fix
Here is my case use: I create multiple output channels for each launched script. There is also "common" output channel which displays output from all launched scripts. When script finished it's task and exits, it's output channel is removed with , at which point VSCode automatically opens the first available output channel in the list (in my case it's ).

I need to detect if any of output channels created by my extension were opened prior , if so, switch to "common" output channel otherwise do nothing. [EDIT] Ok, so as suggested we could check using document url: replace and with your extension and from
Change:
if (!this.localUserConfiguration.hasTasksLoaded) { // Reload local user configuration again to load user tasks <del> this._register(runWhenIdle(() => this.reloadLocalUserConfiguration(), 5000)); </del> <ins> this._register(runWhenIdle(() => this.reloadLocalUserConfiguration())); </ins> } }

Discussion:
Part of This ends up exacerbating a slow startup, an idle callback will fire among other eventually/idle callbacks. Can the 5000 be removed?
Can you please elaborate how this is impacting perf?
It's a little hard to quantify this, but in the end it probably results in milliseconds of work (how much depends on hardware), potentially before the editor shows/tokenization is done, especially on average/low end hardware. Removing the timeout will just shift that small amount of work to around . There should be a reason code runs this early and this seems like an obvious candidate to push as it's already on an idle callback.
Trying to understand this. I think runWhenIdle runs when the browser/renderer is not doing anything. Why will this run eventually if timeout is removed? May I understand what timeout is meant for here? Does the task runs forcefully after that timeout?
Yep, when it hits the timeout its treated more like a setTimeout. Calling it without the timeout will run it whenever the main thread is not busy.
Ok will remove the timeout
Change:
} private onDidStyleChange(): void { <ins> if (!this.isVisible()) { this.styleChangedWhenInvisible = true; return; } </ins> if (this.styleElement) { this.replInput.updateOptions({ fontSize: this.replOptions.replConfiguration.fontSize,

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.85.0 OS Version: win10 Steps to Reproduce: a C/C++ program. "Ctrl +j" to Toggle Panel invisible. Change the debug console font size, then toggle panel visible. It can be seen the debug console content is cleared is a video demonstration
Weird bug. I can repro it
Still repros
I see that this works sometimes, but sometimes it still clears the debug console content.
I would like to work on this. Can you please assign this to me?
Feel free to send a PR if you'd like
Tried to reproduce this on the latest stable release and it seems like this is already fixed.
The original steps:
I submitted a to fix this problem. But I'm not sure if it is an ideal approach. Any feedback would be helpful .
Change:
private async displaySelectAnotherQuickPick(editor: IActiveNotebookEditor, kernelListEmpty: boolean): Promise<boolean> { const notebook: NotebookTextModel = editor.textModel; const disposables = new DisposableStore(); <del> const quickPick = this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true }); </del> <ins> const quickPick = disposables.add(this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true })); </ins> const quickPickItem = await new Promise<KernelQuickPickItem | IQuickInputButton | undefined>(resolve => { // select from kernel sources quickPick.title = kernelListEmpty ? localize('select', "Select Kernel") : localize('selectAnotherKernel', "Select Another Kernel");

Discussion:
Note that quick pick instances and their events are disposables. Noticed a few cases of missing:
Change:
const upHistoryKeybinding = keybindingService.lookupKeybinding('inlineChat.previousFromHistory')?.getAriaLabel(); const downHistoryKeybinding = keybindingService.lookupKeybinding('inlineChat.nextFromHistory')?.getAriaLabel(); if (upHistoryKeybinding && downHistoryKeybinding) { <del> content.push(localize('inlineChat.requestHistory', 'In the input box, use {0} and {1} to navigate your request history. Edit input and use enter or the submit button to run a new request.'), upHistoryKeybinding, downHistoryKeybinding); </del> <ins> content.push(localize('inlineChat.requestHistory', 'In the input box, use {0} and {1} to navigate your request history. Edit input and use enter or the submit button to run a new request.', upHistoryKeybinding, downHistoryKeybinding)); </ins> } content.push(localize('inlineChat.contextActions', "Context menu actions may run a request prefixed with /fix or /explain. Type / to discover more ready-made commands.")); content.push(localize('inlineChat.fix', "When a request is prefixed with /fix, a response will indicate the problem with the current code. A diff editor will be rendered and can be reached by tabbing."));

Discussion:
Testing Would it be more beginner-friendly to say 'It is useful for making changes to the current editor. For example, fixing diagnostics, documenting or refactoring code.' ? Maybe more general 'via code actions' ? I think this should be and ! Do you think we could confuse the reader mentioning context menu actions for inline chat because they aren't accessible through the inline chat? Maybe we could rather mention that putting in slash will offer several ready-made requests? One could then discover all slash commands ! Can't tab into the diff editor. Made an
They arrive at the inline chat via those, so I think they should be mentioned
Just FYI there're more items these days: <img width="187" alt="image" src=""
Thanks and good point. I'll address this in July when I remove the hard coding (don't have the issue currently as afk)
there's a localization string issue, should be fixed by - tricky closing parentheses! <img width="1099" alt="image" src=""Note this may not yet be released in insiders if you're trying to verify this issue!
<!-- UNABLETOLOCATECOMMITMESSAGE issue --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased
Change:
return this._activePreview && this._activePreview.resource; } <ins> public get activePreviewResourceColumn() { return this._activePreview && this._activePreview.resourceColumn; } </ins> public toggleLock() { const preview = this._activePreview; if (preview) {

Discussion:
Issue Type: <bBug</b! When using the Markdown preview, the "Show Source" action should be smart enough to know that the source is open and go to that tab. Same applies to the preview tab, if there is already a preview tab open switch focus there. Otherwise you're in this endless loop of creating duplicate tabs. VS Code version: Code - Insiders 1.35.0-insider (, 2019-05-20T05:15:57.974Z) OS version: Darwin x64 18.2.0 <details<summarySystem Info</summary </details<details<summaryExtensions (30)</summaryExtensionVersion ------ vscode-browser-preview0.5.4 vscode-opennewinstance0.0.6 bracket-pair-colorizer1.0.61 vscode-svgviewer2.0.0 vscode-eslint1.9.0 gitlens9.7.4 vsc-material-theme2.8.2 prettier-vscode1.9.0 azure-virtual-machine-explorer0.0.2 vscode-pull-request-github-insiders1.137.0 vscode-colorize0.8.10 theme-monokai-pro-vscode1.1.13 vscode-azureappservice0.14.0 python2019.4. remote-containers0.53.0 remote-ssh0.37.0 remote-ssh-edit0.37.0 remote-ssh-explorer0.37.0 remote-wsl0.36.0 azure-account0.8.4 azurecli0.4.5 vscode-typescript-tslint-plugin1.0.0 debugger-for-chrome4.11.3 vetur0.21.0 vscode-docker0.6.2 vscode-yaml0.4.0 code-settings-sync3.2.9 ayu0.18.0 WebTemplateStudio-dev-nightly0.0. markdown-all-in-one2.3.1 (17 theme extensions excluded) </details<!-- generated by issue reporter --
I'd like to give this a try
Ok, I could use some help on this issue. I traced the click call to the function , but am not sure if I should be making any changes here since it will very likely affect other functionalities as well.

I also noticed that if I have the file already open in the same split window pane, it will open that instead of creating a new split pane, but it is even when it opens a new pane with a new tab. So I am confused how calling the same function with the same parameter exhibits different behaviors (opening a new pane with a new tab vs opening an already open tab in the same pane). ! Some pointers around this would be very helpful, thanks
sorry for tagging you, not sure if you got a chance to see my previous comment. Can you please help out?
The api you linked to is a good starting point but that is part of core VS Code. You want the caller of that api, which in the case is the markdown extension. How I think this feature should work: the markdown extension, we maintain a . These should track which column created the preview. This is likely already passed in with , we just don't store the resourceColumn anywhere as far as I remember. the is invoked, use the preview's column information to decide which column to show the preview in
Change:
@ILanguageService private readonly languageService: ILanguageService, @IWorkspaceContextService private readonly workspaceContextService: IWorkspaceContextService, @IEditorGroupsService private readonly editorGroupService: IEditorGroupsService, <del> @INotebookExecutionStateService notebookExecutionStateService: INotebookExecutionStateService </del> ) { super();

Discussion:
Run this code: Click on the 'Save as' button on the plot ! Throws an error: !
This works now, looks like what ever the issue was it has been fixed. Marking as closed for april so it gets validated.
I hit this on Insiders. Currently using the latest pre-release of Jupyter and Python . Let me know if there's any additional I can get for you. !
looks like a bug in Interactive window. It was marked as a mild regression at our end. Note: from what I can tell users will not be able to download and save images from interactive window as a result of this bug.
The problem seems to be with the class. We're unable to download files thats associated with Interactive Windows which has a custom scheme of (which doesn't have any file system providers).
Related issue
not sure if you know there is an easy fix for it. We generate from , which is interactive notebook in this case, and using that as default dir for save dialog will lead to this exception.
Seems similar to this case, like we should resolve it with the document path and the workspace URI
Change:
suite(`Link: ${baseLink}`, () => { for (let i = 0; i < supportedLinkFormats.length; i++) { const linkFormat = supportedLinkFormats[i]; <del> test(`Format: ${linkFormat.urlFormat}`, async () => { const formattedLink = format(linkFormat.urlFormat, baseLink, linkFormat.line, linkFormat.column); </del> <ins> const formattedLink = format(linkFormat.urlFormat, baseLink, linkFormat.line, linkFormat.column); test(`should detect in "${formattedLink}"`, async () => { </ins> await assertLink(TerminalBuiltinLinkType.LocalFile, formattedLink, [{ text: formattedLink, range: [[1, 1], [formattedLink.length, 1]] }]); await assertLink(TerminalBuiltinLinkType.LocalFile, ` ${formattedLink} `, [{ text: formattedLink, range: [[2, 1], [formattedLink.length + 1, 1]] }]); await assertLink(TerminalBuiltinLinkType.LocalFile, `(${formattedLink})`, [{ text: formattedLink, range: [[2, 1], [formattedLink.length + 1, 1]] }]);

Discussion:
These flakes are a bit odd, not sure what could cause them and the failures seem a bit all over the place
I some logs that will help with debugging future failures. Closing in the meantime until a new one pops up.
Change:
pub platform: Platform, pub log: log::Logger, args: ServeWebArgs, <ins> /// Server base path, ending in `/` base_path: String, </ins> /// Cache where servers are stored cache: DownloadCache, /// Mapping of (Quality, Commit) to the state each server is in

Discussion:
The command was augmented with the argument here in Because the does not include the , any attempts to mint a key will result in a 404 if the server-base-path is set. I think this is the reason why I am experiencing an issue that any sign-in attempt in the browser (e.g., Github Copilot, Settings Sync) do not persist between page refreshes. <!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.89.1 OS Version: x64 Steps to Reproduce: the browser, observe 404s to
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.89.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
assigned to you since you approved the original PR