jiebi/CodeConvo huggingface dataset:
Change:
getAssociationsForResource(resource: URI): EditorAssociations { const associations = this.getAllUserAssociations(); <del> const matchingAssociations = associations.filter(association => association.filenamePattern && globMatchesResource(association.filenamePattern, resource)); </del> <ins> let matchingAssociations = associations.filter(association => association.filenamePattern && globMatchesResource(association.filenamePattern, resource)); // Sort matching associations based on glob length as a longer glob will be more specific matchingAssociations = matchingAssociations.sort((a, b) => (b.filenamePattern?.length ?? 0) - (a.filenamePattern?.length ?? 0)); </ins> const allEditors: RegisteredEditors = this._registeredEditors; // Ensure that the settings are valid editors return matchingAssociations.filter(association => allEditors.find(c => c.editorInfo.id === association.viewType));

Discussion:
Type: <bBug</bExtension installed: Goal: Open all -Files with the default editor, except for which should be opened with . Configuration: The setting for is respected, the second one isn't. No matter how I change the config, it's always the same result. I can assign all markdown files to runme, or all to default. Specifying full filenames doesn't have any noticable effect. VS Code version: Code - Insiders 1.81.0-insider (, 2023-07-25T08:12:53.439Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.15.0-1041-azure <details<summarySystem Info</summary </details<!-- generated by issue reporter --
My guess is that we go through the list and pick the first that matches, not looking for more specific matches. Maybe the editor resolver should prefer a match that does not use wildcards over those with wildcards, assuming it is a more specific match.
Oh, I think some logic like that already exists?
I tested for that case by putting the full filename first in the list - no change. It doesn't even match if it's the only entry in that list.
Change:
} public addDisposable(disposable: lifecycle.IDisposable): void { <del> this._toDispose.push(disposable); </del> <ins> this._instanceDisposables.push(disposable); </ins> } public attachToElement(container: HTMLElement): void {

Discussion:
From
For January we decided to keep the task in the core. So there is no need to make this 'public' API now. May be it would be good to first experiment a little with the new API.
just to make sure, were you thinking of using a prompt (press any key to close) that can be reused? Or a terminal that executes something, the pty process dies and just sits there ("dead") until another task command is sent?
I would like to achieve the following: create a new terminal and allow terminal reuse (could be an additional option) without actually running a terminal right away (if necessary we could run it as well) run a command in the terminal. This will create the actual shell process. Usually the shell would be started with /c receive an exit event when the shell exists reuse the terminal to run another command in the terminal which creates a new shell process. Use case if for a build task: if the user runs the build tasks 3 times in a row I would like to have one terminal (e.g. on entry in the drop down in the terminal pane) which contains the output of all three task runs.
I have one additional question. Does the terminal require to run a shell or would the terminal be able to run any other arbitrary process (for example a ).
I got it working to run an arbitrary program. Only drawback is that I needed to specify the full path to the program (e.g. ). Any idea why this is the case?
do you mean the shell path you're using is and it's not working like that? I guess the resolution stuff is contained within , I would think it would probably be safest to always wrap the command within or . Wrapping the command means the process will die when it finishes so I don't see a downside?
the only problem is argument passing with spaces contained. If you call node directly then you pass the args as a string[]. If you call the for example you need to construct a single string with proper arg quoting to ensure everything works when for example the command to call contains spaces. And you save a process :-)
could this be useful for Python terminal execution?
Change:
} }; <del> const registration = this._languageFeaturesService.completionProvider.register({ language: this._editor.getModel().getLanguageId(), pattern: this._editor.getModel().uri.fsPath, scheme: this._editor.getModel().uri.scheme, exclusive: true }, this._choiceCompletionItemProvider); </del> <ins> const model = this._editor.getModel(); let registration: IDisposable = Disposable.None; let isRegistered = false; const disable = () => { registration.dispose(); isRegistered = false; }; const enable = () => { if (!isRegistered) { registration = this._languageFeaturesService.completionProvider.register({ language: model.getLanguageId(), pattern: model.uri.fsPath, scheme: model.uri.scheme, exclusive: true }, provider); isRegistered = true; } }; </ins> this._snippetListener.add(registration); <ins> this._choiceCompletions = { provider, enable, disable }; </ins> } this._updateState();

Discussion:
This problem still occurs even if you disable all extensions. This problem was confirmed in Markdown file. below the snippet (it contains a snippet choice) below the code in Markdown file snippet in Markdown file I expected to see link label suggestion, but it does not display link label suggestion... Included by snippet choice reproduces the issue. It is not displayed even if is pressed. Gif demo: ! VS Code Windows 11
Sorry but I am unaware of link label suggestions. What are those and where do they usually come from?
I'm sorry, I had my own way of saying it. I don't know the correct terminology, but I'll show you an example in action. the following markdown your cursor inside the second ! I haven't been able to find any release notes for this feature, but it's a feature in VS Code and not coming from an Installed extension. This feature doesn't work within certain snippets.
I can reproduce. Looks like the choice suggest provider is staying active despite its placeholder not being active anymore
Using a snippet seems to break label suggestions until the editor is reloaded. Even reopening the file doesn't fix it:
repro steps please
the snippet from the original issue in your global snippets a new markdown file with the contents as in the video, you can get completions until the moment you use the snippet
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Change:
const timer = setTimeout(() => { codeProc.kill(); reject(new Error('export-default-configuration process timed out')); <del> }, 12 * 1000); </del> <ins> }, 30 * 1000); </ins> codeProc.on('error', err => { clearTimeout(timer); reject(err);

Discussion:
Refs
Not sure what's going on - this process is pretty straightforward and hasn't changed in years. I am launching the full vscode window on this build machine, nothing has changed in electron that would interact with that right?
and are on same electron versions, the step worked fine in the latest build last Friday , first timeout failure started since insiders were turned back on last Saturday and since then all insiders build seem to consistently hit the timeout Todays' nightly run: Testing if I can repro the issue locally.
Testing the callsite locally seems to work fine.
I wonder if the timeout is insufficient, testing a build with increased timeout here
Previous build did not enable the upload step, new build
Kicked off another, removing the branch check
Might not be fixed ( - run on 11th of May, one day after this fix has been merged to main)
the fix only landed in , failing build was on , how do you feel about backporting the fix to ?
I can do that
Change:
}); } <del> async replaceAll(matches: CellFindMatch[], text: string): Promise<void> { </del> <ins> async replaceAll(matches: CellFindMatch[], texts: string[]): Promise<void> { </ins> if (!matches.length) { return; }

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. --In Jupyter Notebooks, finding witrh regex works but replacing with capturing groups doesn't. I'd like if it does. I tried as in the usual editor, but the replacement treats as literal. I had to work around by copying the code section to the usual editor, and then find and replace. This seems like an inconsistent UX, and personally quite inconvinient.
Should I have opened this at ? If so, please close this so I can move on.
Thanks again for the help, it makes the find experience in notebook closer to the normal text editor one.
did you create a test plan item for this? I just the verification needed to it.
Change:
"$schema": "vscode://schemas/color-theme", "name": "Light (Visual Studio)", "colors": { <ins> "activityBarItem.settingsProfilesBackground": "#4d4d4d", </ins> "editor.background": "#FFFFFF", "editor.foreground": "#000000", "editor.inactiveSelectionBackground": "#E5EBF1",

Discussion:
The original designs had something closer to this for the default background color. IMO it isn't trying to be an icon like the other items and the border makes it feel like an icon vs. a unique element. I also think the background and foreground should be the only customizable elements to start. I think I saw a foreground token, but not sure it was possible to do background yet. <img width="247" alt="CleanShot 2022-09-26 at 16 29 09 src="https://user-"
I also like this more over the border For example here this looks not too different from the actions above even though it is about profiles: <img width="297" alt="image" src="https://user-"
!
I like it but maybe with smaller font size? Here is with for example: !
Current font size goes well with all (emoji, codicons) and also symmetric with activity bar icons.
Change:
}, description: nls.localize('scope.enumDescriptions', 'Descriptions for enum values') }, <del> markdownEnumDescription: { </del> <ins> markdownEnumDescriptions: { </ins> type: 'array', items: { type: 'string', }, <del> description: nls.localize('scope.markdownEnumDescription', 'Descriptions for enum values in the markdown format.') </del> <ins> description: nls.localize('scope.markdownEnumDescriptions', 'Descriptions for enum values in the markdown format.') </ins> }, markdownDescription: { type: 'string',

Discussion:
Issue Type: <bBug</b- VS Code version: Code 1.41.0 (, 2019-12-11T18:37:42.077Z) OS version: WindowsNT x64 10.0. . following stuff: Does this issue occur when all extensions are disabled?: Yes <details<summarySystem Info</summary </details<details<summaryExtensions (7)</summaryExtensionVersion ------ language-mcfunction0.16.0 snapshot-tools0.4.0 vscode-edit-csv0.2.5 vscode-typescript-tslint-plugin1.2.3 datapack-json2.0.1 datapack-language-server1.10.5 vscode-icons9.6.0 (1 theme extensions excluded) </details<!-- generated by issue reporter --
Change:
this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true)); this._register(addDisposableListener(element, EventType.BLUR, onBlur, true)); <del> this._register(addDisposableListener(element, EventType.FOCUS_IN, () => this._refreshStateHandler())); this._register(addDisposableListener(element, EventType.FOCUS_OUT, () => this._refreshStateHandler())); </del> <ins> if (element instanceof HTMLElement) { this._register(addDisposableListener(element, EventType.FOCUS_IN, () => this._refreshStateHandler())); this._register(addDisposableListener(element, EventType.FOCUS_OUT, () => this._refreshStateHandler())); } </ins> } refreshState() {

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 <!-- 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.77.2 OS Version: macOS 13.0 Steps to Reproduce: up a Github CodeSpaces in browser. a trivial extension that uses the api and logs the event out in its callback. the extension and focus on the new tab (Extension Development Host tab). outside the browser window, but the callback is not triggered. I notice that it will only be triggered if I am switching tabs, but I think it should also react when the browser loses focus.
Here's relevant info to fix this:
Actually the vscode api already implements a focus/blur event handling for this reason.
Change:
"vscode-ripgrep": "^1.5.7", "vscode-sqlite3": "4.0.8", "vscode-textmate": "^4.3.0", <del> "xterm": "4.2.0", </del> <ins> "xterm": "4.2.0-vscode1", </ins> "xterm-addon-search": "0.3.0", "xterm-addon-web-links": "0.2.1", "yauzl": "^2.9.2",

Discussion:
This increases the amount of work done when typing commands to be significantly more. Upstream:
Can't really verify this issue without debugging into the code, inside (formatted) you will see an function, the args are start/end. Add a breakpoint to that function and verify the args are a range for a single like (eg. 15, 15) after typing a single character into the terminal. Here is the failing case where the terminal is re-rendering lines 0-15: ! Use the canvas renderer to verify.
A better way to verify: to DOM renderer paint flashing: ! you type into the prompt only a single line will flash
Verified in latest (). Can this issue be closed?
Change:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { TaskSet } from 'vs/workbench/contrib/tasks/common/tasks'; import { Emitter } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import { CancellationTokenSource } from 'vs/base/common/cancellation'; export class ProviderProgressMananger extends Disposable { private _onProviderComplete: Emitter<string> = new Emitter(); private _stillProviding: Set<string> = new Set(); private _onDone: Emitter<void> = new Emitter(); private _isDone: boolean = false; private _showProgress: ((remaining: string[]) => void) | undefined; public canceled: CancellationTokenSource = new CancellationTokenSource(); constructor() { super(); this._register(this._onProviderComplete.event(taskType => { this._stillProviding.delete(taskType); if (this._stillProviding.size === 0) { this._isDone = true; this._onDone.fire(); } if (this._showProgress) { this._showProgress(Array.from(this._stillProviding)); } })); } public addProvider(taskType: string, provider: Promise<TaskSet>) { this._stillProviding.add(taskType); provider.then(() => this._onProviderComplete.fire(taskType)); } public addOnDoneListener(onDoneListener: () => void) { this._register(this._onDone.event(onDoneListener)); } set showProgress(progressDisplayFunction: (remaining: string[]) => void) { this._showProgress = progressDisplayFunction; this._showProgress(Array.from(this._stillProviding)); } get isDone(): boolean { return this._isDone; } public cancel() { this._isDone = true; if (this._showProgress) { this._showProgress([]); } this._onDone.fire(); this.canceled.cancel(); } } </ins>

Discussion:
We have a temporary fix for the release for but we need to do something better long term.
while working on quick access for tasks I noticed that we seem to be having 2 pickers for the same thing (?): Task quick open: ! "Run Task" picker: ! Is that intentional? Should the one be merged into the other?
Yes, they do not share much code :( as part of improving the quick pick I will converge them.
sounds good, please only change  and leave the other one because I plan to delete those old ones soon.
Change:
this.selectedCategory = options.selectedCategory; this.selectedStep = options.selectedStep; this.showTelemetryNotice = !!options.showTelemetryNotice; <ins> this.showWelcome = options.showWelcome ?? true; </ins> } override getName() {

Discussion:
For: Passing in an empty markdown file fixes this issue currently. [x] Add the ability to go back to the last focused view instead of the welcome page.
Removing the button on walkthroughs if opened from the cmd. This should prevent the walkthrough from going to the welcome page. The button is now only shown when a walkthrough is invoked from the page or another walkthrough.
Change:
console[msg.type()](msg.text(), await Promise.all(msg.args().map(async arg => await arg.jsonValue()))); }); <del> withReporter(new EchoRunner(emitter, browserType.toUpperCase())); </del> <ins> withReporter(browserType, new EchoRunner(emitter, browserType.toUpperCase())); </ins> // collection failures for console printing const fails = [];

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --- [x] Adopt a multi-stage pipeline for better visibility into dependencies [x] Review all test suites and ensure that they emit XML test results [x] Add pipeline task to publish the test results
Change:
return this._editorWidget.getPosition() || undefined; } <del> setPosition(position: Position, reveal?: boolean): void { </del> <ins> setPosition(position: Position, reveal?: boolean, select?: boolean): void { </ins> this._editorWidget.setPosition(position); if (reveal) { this._editorWidget.revealPosition(position); } <ins> if (select) { const lineLength = this._editorWidget.getModel()?.getLineLength(position.lineNumber) ?? 0; if (lineLength) { this._editorWidget.setSelection({ startLineNumber: position.lineNumber, startColumn: 1, endLineNumber: position.lineNumber, endColumn: lineLength + 1 }); } } </ins> } getCodeBlockContext(): ICodeBlockActionContext | undefined {

Discussion:
reported by
I am calling here on navigating to the command. On macOS, this works beautifully. I haven't tested on Windows, but am not sure why it wouldn't work the same way there. One reason it wouldn't work for you is if shell integration isn't enabled or activated properly. I know we've seen that happen for you before. do you have any thoughts / can you repro the issue on windows: run some commands in the terminal open the accessible view use alt/opt+up/down arrow to navigate between commands you should hear the commands
It has nothing to do with the shell integration because the cursor actually moves, but the aria alert does not work on Windows.
hi If I follow the steps, I only hear command failed / command succeeded for each command with the corresponding audio cue, and these are actually communicated as screen reader alerts. if I do the same on the mac, I hear the command and the corresponding audio cue for success / failure, but not the command succeeded / command failed message. for the sake of troubleshooting, I disabled the signal announcement on Windows for command succeeded / command failed. After doing that I hear the audio cue only, but not announcement. I did a bit of debugging with NVDA, and the screen reader doesn't seem to be receiving any aria live update event. One easy fix here could be to simply select the text for the command when the cursor moves to previous / next command. That would completely eliminate the need for an aria alert, and would likely work consistently across all platforms.
Thanks so much for troubleshooting I love that idea, will try it tomorrow.
<!-- UNABLETOLOCATECOMMITMESSAGE repo --Issue marked as unreleased but unable to locate closing commit in repo history. If this was closed in a separate repo you can add the label directly, or comment .
I only hear the command status as "command succeeded" or "command failed" but not the command itself.
do you see the command selected? A gif would help
it is not working for me because of this:
Makes sense - this feature is built on shell integration, so that'll have to work to test this
provided a fix for the shell integration. This is verified with that fix.
Change:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ let _fetch: typeof fetch; try { _fetch = require('electron').net.fetch; } catch { _fetch = fetch; } export default _fetch; </ins>

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 No. The issue occurs in a built-in extension so extensions need to be enabled to see the issue. <!-- 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. --Version: 1.93.0-insider (Universal) Commit: Date: 2024-08-26T05:04:02.640Z Electron: 30.3.1 ElectronBuildId: Chromium: 124.0.6367.243 20.15.1 V8: 12.4.254.20-electron.0 OS: Darwin arm64 23.6.0 Steps to Reproduce: VS Code behind a proxy server and make a call to the function from the package included with VS Code similar to the one below. After the changes listed in , we began seeing failures from the Microsoft Authentication extension with the following log entries at startup. We rely on that extension to allow another extension we developed internally to authenticate our users. After debugging into the extension source, I found that the issue was originating here. After reading through the previously mentioned pull request, I figured that the call was hanging because the new function was not handling proxy configurations the same way (a common issue in corporate settings). I pulled down VS Code, built from source and tested a change that resolves the issue. I'd like to open a pull request with the fix if you agree that there is a bug in this flow. System Information
will be exploring fixing this type of issue transparently.
This will be in Monday's Insiders build. Can you please give that a try when it drops so we know for a fact we've fixed the issue for you?
that fixed the issue. Thanks so much for the quick response to our problem!