jiebi/CodeConvo huggingface dataset:
Change:
return; } <ins> if (this.tree.selectionSize > 1) { return; // don't change a multi-selection #180950 } </ins> // follow running tests, or tests whose state changed. Tests that // complete very fast may not enter the running state at all. if (evt.item.ownComputedState !== TestResultState.Running && !(evt.previousState === TestResultState.Queued && isStateWithResult(evt.item.ownComputedState))) {

Discussion:
Testing microsoft/vscode-python some tests in the test explorer. the play button on one of the tests to run the selected tests. Expected result: The tests stay selected. Actual result: Only one of the tests is selected after.
You ca choose alternate sorting methods here. Ordering by location sounds like what you want: <img width="259" alt="image" src="https://user-"
I think what is talking about is this behavior but please correct me if I'm wrong, thanks! https://user-
Oh, sorry, misread. I think it's sensible that if multiple elements are selected, we don't touch it
Wrong
Change:
"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "8.0.0", <del> "xterm": "5.1.0-beta.87", "xterm-addon-canvas": "0.3.0-beta.35", </del> <ins> "xterm": "5.2.0-beta.2", "xterm-addon-canvas": "0.4.0-beta.1", </ins> "xterm-addon-search": "0.11.0-beta.7", <del> "xterm-addon-serialize": "0.9.0-beta.3", </del> <ins> "xterm-addon-serialize": "0.9.0", </ins> "xterm-addon-unicode11": "0.5.0-beta.5", <del> "xterm-addon-webgl": "0.14.0-beta.50", "xterm-headless": "5.1.0-beta.87", </del> <ins> "xterm-addon-webgl": "0.15.0-beta.1", "xterm-headless": "5.2.0-beta.2", </ins> "yauzl": "^2.9.2", "yazl": "^2.4.3" },

Discussion:
I was resolving a conflict for with 500 file paths showing up in the terminal as a result and noticed how typing became very slow. Kudos to auto profiling, we have a trace:
Terminal output: !
This was caused by , it may fixable on the VS Code side though.
Repro: vscode repo : over a link and keep it there into the terminal ! ! ! !
Something is not getting disposed, I verified that the number of times each link detector is called increases
!
Can repro upstream:
Change:
const promise = new Promise<T>((resolve, reject) => { const subscription = source.token.onCancellationRequested(() => { subscription.dispose(); <del> source.dispose(); </del> reject(new CancellationError()); }); Promise.resolve(thenable).then(value => {

Discussion:
The CancelablePromise disposes its CancellationTokenSource inside a onCancellationRequested listener. That means that any other onCancellationRequested listeners that were after that one won't be called, because the EventEmitter has been disposed. In practice that means that any listener that was after an async step inside the callback function is not called. This caused issues in chat, but the function is used in many places and I think it's likely that some of those are affected. My suggested fix is in but I don't think this is safe to check in at the end of the iteration, so I will wait until December. Looks like you guys have touched this code, lmk what you think: Transferred from a private issue. Original issue discussion below <detailsa question such as "Explain recursion in detail to me" hit cancel Watch the copilot chat log, you will see the request continues and even follow ups are computed even though no tokens are shown to the user. This is a bit weird. Order of events is this: Call to get a token Attach some listeners to it, some after async steps Cancel the cancellable promise The cancellable promise disposes the token source The cancellation listeners that were after an async step don't get called because the event emitter is disposed before it can call them The last step is suspicious but I guess that's how EventEmitter works? And the cancellable promise seems like it's doing the right thing. I need to check that the same thing happens with a normal CancellationTokenSource because the logic is the same. Still not sure of the right solution. Essentially has a listener which disposes the . Listeners that were later than that first listener will not be called because the event emitter will be disposed in the middle of emitting, which is by design for EventEmitter. But there is no way to guarantee that all listeners have been called before disposing, besides something like which doesn't seem nice </details
That's a good find and something we shouldn't be doing. Looks like a regression from
Disposables and leaks are tricky... Thanks for finding this! Here is the PR that introduced this: Ironic that I introduced leaks with the goal to reduce leaks...
Change:
"description": "Provides rich language support for Markdown.", "markdown.preview.breaks.desc": "Sets how line-breaks are rendered in the Markdown preview. Setting it to 'true' creates a <br> for newlines inside paragraphs.", "markdown.preview.linkify": "Enable or disable conversion of URL-like text to links in the Markdown preview.", <ins> "markdown.preview.typographer": "Enable or disable some language-neutral replacement and quotes beautification in the Markdown preview.", </ins> "markdown.preview.doubleClickToSwitchToEditor.desc": "Double click in the Markdown preview to switch to the editor.", "markdown.preview.fontFamily.desc": "Controls the font family used in the Markdown preview.", "markdown.preview.fontSize.desc": "Controls the font size in pixels used in the Markdown preview.",

Discussion:
Would it be possible to implement support for Typographer mode in the Markdown preview? has support for a typographer option to "enable some language-neutral replacement + quotes beautification". A live comparison is available on . I've listed some of the most common examples below: Name Typographer -- -- Left single quote Left double quote Right single quote Right double quote Ellipsis En-dash Em-dash Copyright Trademark It'd be ideal to add a config setting such that Typographer replacements are done on-the-fly, similarly to the existing implementation of . Thank you for your time.
Change:
const args = ['log', `--format=${COMMIT_FORMAT}`, '-z']; if (options?.shortStats) { <del> args.push('--shortstat', '--diff-merges=first-parent'); </del> <ins> args.push('--shortstat'); if (this._git.compareGitVersionTo('2.31') !== -1) { args.push('--diff-merges=first-parent'); } </ins> } if (options?.reverse) {

Discussion:
Type: <bBug</bThe new incoming/outgoing does not not work propery. The sections cannot be expanded to show the contents. The count icon matches. VS Code version: Code 1.85.0 (Universal) (, 2023-12-06T18:18:04.614Z) OS version: Darwin x64 22.6.0 Modes: Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic Remote OS version: Linux x64 5.15.0-91-generic <details<summarySystem Info</summary </details<details<summaryExtensions (38)</summaryExtensionVersion ------ remotehub0.62.0 better-cpp-syntax1.17.2 better-objc-syntax0.2.0 better-objcpp-syntax0.2.0 autoconf0.2.0 jupyter-keymap1.1.2 remote-containers0.327.0 remote-ssh0.107.1 remote-ssh-edit0.86.0 remote-explorer0.4.1 remote-repositories0.40.0 remote-server1.5.0 lit-html1.11.1 githistory0.6.20 vscode-pull-request-github0.76.1 vscode-embedded-css-template-strings0.5.1 githd2.3.3 rest-client0.25.1 gitsweep1.0.0 git-tree-compare1.16.0 vscode-antlr42.4.4 hexeditor1.9.12 sqltools0.28.1 sqltools-driver-pg0.5.2 gradle-language0.2.3 inline-html0.3.9 java1.26. code-spell-checker3.0.1 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-gradle3.13.

vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 gitblame10.5.1 jar-viewer1.2.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Here is a screenshot: <img width="460" alt="image" src=""
I have the same issue, but it works locally, it is only broken on my remote development sessions through ssh.
When I try to toggle the incoming/outgoing dropdown I see the following in the Git log output: It seems that argument was in git v2.31.0 On my remote dev machine I have so that tracks.
Change:
@IAccessibilityService private readonly accessibilityService: IAccessibilityService ) { super(); <ins> // preload all sounds so there's no delay for (const audioCue of AudioCue.allAudioCues) { playAudio(FileAccess.asBrowserUri( `vs/platform/audioCues/browser/media/${audioCue.sound.fileName}` ).toString(true), 0).then(sound => { { this.sounds.set(sound.src, sound); } }); } </ins> } public async playAudioCue(cue: AudioCue, allowManyInParallel = false): Promise<void> {

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.75.0 OS Version: Windows 10 Steps to Reproduce: a project in VSCode that's versioned by git. a change. , (<kbdAlt</kbd+<kbdF5</kbd). the time it takes to move your cursor to the next change. You should notice a significant delay in version 1.75 compared to version 1.74. I've only tested this in a single repository with ~30k LoC and a few hundred commits.
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.75.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
is this something that falls under your area of ownership?
Can confirm. In 1.74 it was instant, whereas now it takes 1sec even in a new project of a single file. Affects Windows 10 and MacOS 12, so not OS-specific. More context: still reproduces in stable 1.75.0 without extensions () doesn't reproduce in 1.75.0-insider () reproduces in Version: 1.76.0-insider ()
I'm also seeing this perf regression with 1.75. Side observation: as noted, alt+f5 is slow in 1.75. However, alt+f3 (related functionality -- 'Show Next Change') still feels instant. (Not sure if this is relevant or helpful.)
For me both and is slow.

It doesn't matter which key combination I bind this command to. Repository size seems to have no (noticeable) effect. Disabling GitLens has no effect either.
I'm seeing this issue too, with both and . I noticed you assigned the label. It's worth noting that the comparable commands for the diff editor ( and ) do not seem to be exhibiting the same slowness, so this issue seems to only be happening in the editor, not the diff editor.
I only just noticed this myself after switching my keybindings because & stopped working since 1.76.0. It's frustrating having to open up the diff editor every time to see things quickly.
Change:
return; case 'did-click-link': <del> let [uri] = event.args; </del> <ins> const [uri] = event.args; </ins> this._onDidClickLink.fire(URI.parse(uri)); return;

Discussion:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths
Change:
data.actionbar.clear(); const slowExtensionAction = this._createSlowExtensionAction(element); if (slowExtensionAction) { <del> data.actionbar.push(slowExtensionAction, { icon: true, label: true }); </del> <ins> data.actionbar.push(slowExtensionAction, { icon: false, label: true }); </ins> } if (isNonEmptyArray(element.status.runtimeErrors)) { const reportExtensionIssueAction = this._createReportExtensionIssueAction(element); if (reportExtensionIssueAction) { <del> data.actionbar.push(reportExtensionIssueAction, { icon: true, label: true }); </del> <ins> data.actionbar.push(reportExtensionIssueAction, { icon: false, label: true }); </ins> } }

Discussion:
"Running Extensions" tab extensions with uncaught errors 's a barely visible piece of a "report issue" button ! !
I could use some help here. Change it such that the action bar is always shown: The "Report Issue" action label is cut short to be 22x22px : <img width="268" alt="image" src="https://user-"
Looks like the default styling of the action items is icon only (codicon) and that comes with a fixed width... I will look into a fix
I got the message to show in VS Code stable, but I couldn't get it to show in insiders. Maybe I'm holding it wrong though so I will leave someone else to verify.
<!-- 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!
Nope. The button "Report Issue" is still hidden in .
Well, there was an attempt... While fixing I just patched the aforementioned lines but what kind of error does your extension throw to be reported there? Can you share your sample?
In :
Change:
{ "name": "code-oss-dev", "version": "1.48.1", <del> "distro": "ffb610b4929b3e94a5827ba9a35981961602fa6d", </del> <ins> "distro": "2893367f9ed13076309bf55498cfd8ce90cad480", </ins> "author": { "name": "Microsoft Corporation" },

Discussion:
The WSL recommendation says but should say “Windows Subsystem for Linux” (WSL)
I believe this was merged in, thus closing
Change:
} this.previousTreeScrollHeight = this.tree.scrollHeight; <ins> this._onDidChangeContentHeight.fire(); </ins> } private createInput(container: HTMLElement, options?: { renderFollowups: boolean; renderStyle?: 'default' | 'compact' }): void {

Discussion:
Repro: in inline chat: !
Oh it's a scroll shadow: !
We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on , where the community has already answered thousands of similar questions. You may find their helpful if your question has not already been asked. See also our . Happy Coding!
I blame it your theme. Inline chat isn't doing anything special here, tho we might wanna tweak the min size
The problem here is that the height of the chat widget inside the inline chat isn't correct and doesn't seem to be updated when the answer is streamed in. There is much more than 40% room available so it should show the full response. Also this is Dark Modern; the theme is fine it's the size: !
That's surprising. Notice how it works here until it reaches the max zone height
Must be related to the code block being replied with. But whatever I do I cannot get it to reply like that...
Ok, I can repro in a TS file with . Looks like the tree reports the wrong content height. Overall we measure 94px (for the input and tree) when in fact only the tree is 107px <img width="1272" alt="Screenshot 2024-03-22 at 16 37 16" src=""
Is editor rendering somehow async and should I ask for content height at some later point?
Change:
if (value.extensionId === extensionId) { return value.content; } <del> } catch (e) { this.logService.error(e); throw new Error('Cannot get password'); </del> <ins> } catch (parseError) { this.logService.error(parseError); // If we can't parse the decrypted value, then it's not a valid secret so we should try to delete it try { await this.credentialsService.deletePassword(fullKey, key); } catch (e) { this.logService.error(e); } throw new Error('Unable to parse decrypted password'); </ins> } }

Discussion:
If a password is not decrypted properly, then it should be removed from the secret storage because it's essentially dead. Originally posted by in
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
Verification steps: grab and install in VS Code Insiders Run command Follow the notifications ping me if you have any questions or issues.
Change:
// resize observer - can be used in the future since list widget supports dynamic height but not width const width = Math.max(...itemWidths, minWidth); <del> this._list.layout(heightWithHeaders, width); this.domNode.style.height = `${heightWithHeaders}px`; </del> <ins> const maxVhPrecentage = 0.7; const height = Math.min(heightWithHeaders, document.body.clientHeight * maxVhPrecentage); this._list.layout(height, width); this.domNode.style.height = `${height}px`; </ins> this._list.domFocus(); return width;

Discussion:
<!-- Do Not Delete This! bugreporttemplate --Helo! I use the code spell checker extension which provides quick fixes for spelling "error"s. Often these are just terms that I've adopted as standard in the repo and don't aim to change. However, with the recent change to use custom context menus instead of the native ones the list of spelling quick fixes causes the refactorings I actually want to use to be out of the window, with no way to scroll them into view. With spell checker extension enabled: <img width="590" alt="image" src="https://user-"Without: <img width="610" alt="image" src="https://user-"Ideally the menu would support scroll. I'd accept an option to use native menus instead (the icons are nice to have but not critical). Alternatively, at minimum perhaps the refactorings could be sorted above quick fixes?
We should also limit the height of the menu. Not very pleasant to have it take up the entire height of the window
Works great, thanks!
Change:
} const childProcess = execPath ? <del> child_process.spawn(JSON.stringify(execPath), [...execArgv, tsServerPath, ...runtimeArgs], { shell: true, </del> <ins> child_process.spawn(execPath, [...execArgv, tsServerPath, ...runtimeArgs], { </ins> windowsHide: true, cwd: undefined, env,

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.86.0 OS Version: Darwin x64 23.2.0 Steps to Reproduce: custom node: any ts project. . The log file is not generated actually.
After attaching to the tsserver with , I see a strange error:
I set "typescript.tsserver.nodePath" to be a script which echos its CLI args and it also shows that the spaces aren't be escaped properly in This looks like a bug in ( which will likely be broken for any Mac user, including one that commented on the original PR
This should already be fixed:
I'll double-check when I get a free moment, but I swear I had updated to the latest version of VSCode when I was testing last week.
I've verified my installation is up-to-date and I still am getting a TSServer crash. I can't find any relevant logs that would indicate the cause of failure. What I do know is that using my (TS 5.2.2) works fine. <img width="1198" alt="" src=""
I found another bug, the log file path is also not being escaped if one has enabled. All of my logs are being written to rather than
this is still an issue as of VSCode 1.88.0
Also I just noticed the description of contains Can you update your review process to ensure that someone with a MacOS machine tests changes?
The ts server seems to just crash and attempt to start in a loop forever. nothing is in the log folder from the logs. my settings:
Can confirm this still crashes on windows.

Seems to work fine for me on Mac. Taking a look now
Seems risky to fix given that this areas has caused problems before so moving to June
<!-- 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!
Change:
throw new ExtensionManagementError(nls.localize('incompatible platform', "The '{0}' extension is not available in {1} for {2}.", extension.identifier.id, this.productService.nameLong, TargetPlatformToString(targetPlatform)), ExtensionManagementErrorCode.IncompatibleTargetPlatform); } <del> const compatibleExtension = await this.getCompatibleVersion(extension, fetchCompatibleVersion, installPreRelease); </del> <ins> const compatibleExtension = await this.getCompatibleVersion(extension, sameVersion, installPreRelease); </ins> if (compatibleExtension) { <del> if (installPreRelease && fetchCompatibleVersion && extension.hasPreReleaseVersion && !compatibleExtension.properties.isPreReleaseVersion) { </del> <ins> if (installPreRelease && !sameVersion && extension.hasPreReleaseVersion && !compatibleExtension.properties.isPreReleaseVersion) { </ins> throw new ExtensionManagementError(nls.localize('notFoundCompatiblePrereleaseDependency', "Can't install pre-release version of '{0}' extension because it is not compatible with the current version of {1} (version {2}).", extension.identifier.id, this.productService.nameLong, this.productService.version), ExtensionManagementErrorCode.IncompatiblePreRelease); } } else {

Discussion:
Version: 1.65.0-insider (user setup) Commit: Date: 2022-02-11T05:19:13.554Z Electron: 16.0.8 Chromium: 96.0.4664.110 16.9.1 V8: 9.6.180.21-electron.0 OS: Windows_NT x64 10.0. Steps to Reproduce: an extension (such as the C/C++ extension) that uses platform-specific VSIX's in the marketplace. a Remote WSL workspace. Install that extension into the remote. the extension UI for the instance installed remotely, try to select "Install Another Version..." or "Install Another Prerelease Version..." This results in an error: ! (There is a similar error in latest non-insider version, 1.64.2)
Can you please enable the log level to trace and provide following logs while performing this action? Log (Shared) Log (Window) Log (Remote)
When this repro's, I see the following in (with and is set to . I do not see any such setting as ) : is similar: was not logged to for this repro.
You can use following command to set log level to trace
Log (Shared): Log (Windows): Log (Remote Server): Log (Remote Extension Host): Please re-open. Please don't block waiting for me to provide information. This bug is extremely easy to reproduce.
Please re-open.
To verify: Open a remote window (make sure local and remote are on different Operating Systems) Install C++ extension Install another version of C++ extension (right click on the extension and you will see this action) Make sure another version is installed.