Question: *--------------------------------------------------------------------------------------------*/ import { deepStrictEqual, doesNotThrow, equal, ok, strictEqual, throws } from 'assert'; <del> import { commands, ConfigurationTarget, Disposable, env, EnvironmentVariableMutator, EnvironmentVariableMutatorOptions, EnvironmentVariableMutatorType, EventEmitter, ExtensionContext, extensions, ExtensionTerminalOptions, GlobalEnvironmentVariableCollection, Pseudoterminal, Terminal, TerminalDimensions, TerminalExitReason, TerminalOptions, TerminalState, UIKind, Uri, window, workspace } from 'vscode'; </del> <ins> import { commands, ConfigurationTarget, Disposable, env, EnvironmentVariableMutator, EnvironmentVariableMutatorOptions, EnvironmentVariableMutatorType, EventEmitter, ExtensionContext, extensions, ExtensionTerminalOptions, Pseudoterminal, Terminal, TerminalDimensions, TerminalExitReason, TerminalOptions, TerminalState, UIKind, Uri, window, workspace } from 'vscode'; </ins> import { assertNoRpc, poll } from '../utils'; // Disable terminal tests:

For example: Context:
As we anticipate we might need shell scoping as well in the future, use something similar to instead. Updated proposal: One issue with this is that carries optional properties. Hence an alternative could be:
The required would need to be removed when we a second one anyway, we can just treat and the same as
Sorry what do you mean by the "second one"? Mostly I was trying to follow : But I guess we don't have to strictly follow it?
by a second one I mean a second scope, we don't want the user to explicitly enumerate all the scopes to set it which would do.
Updated proposal:
Closing in favor of as these issues were only open to finalize proposed API.
Moving this out of June as it's a feature request.
I was expecting this so it's easier to understand for an API user:
That's what I had initially had , you're the one who recommended that perhaps we should put it inside itself:
API sync also seemed to be in agreement with that, but maybe we should check again.
my mistake, I forgot some of the conversations as this has gone through a few iterations
Based on discussion in API sync, we should probably deprecate existing API and merge it with the scoped one (similar to )
Assigning myself too so it's easier for me to track
When viewing contributions, is it possible to open the preview of the markdown directly instead of the file? ! as opposed to ! I can open preview using: !
since this is an advanced feature I think the raw markdown is more flexible as the user can navigate and copy section of it better. So I don't think this is a necessary change personally
Feedback before finalization: Add an interface implements Add to the Clarify how scoped interacts with the non-scoped collection Don't deprecate
Should we also call out how it's applied in addition to (and after) the global collection? Looks good otherwise
Sure, I have modified the docstrings to append it I plan to have the implementation ready but only merge and adopt it in Python extension next week to avoid multiple iterations.


Question: } let ariaLabel = this.ariaLabel; <del> if (!ariaLabel) { </del> <ins> // Only set aria label to the input box placeholder if we actually have an input box. if (!ariaLabel && visibilities.inputBox) { </ins> ariaLabel = this.placeholder || QuickPick.DEFAULT_ARIA_LABEL; // If we have a title, include it in the aria label. if (this.title) {

cc: Type: <bBug</bSteps to reproduce: at least 2 files in VSCode. orca. ctrl+tab to switch to the next open file. In my environment orca announces something similar to the following: Is this the expected behavior? VS Code version: Code - Insiders 1.78.0-insider (, 2023-04-06T05:21:17.374Z) OS version: Linux x64 6.2.8-200.fc37.x8664 Modes: Sandboxed: Yes <details<summarySystem Info</summary </details<details<summaryExtensions (42)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.49.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.79. rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.24.0 csharp1.25.4 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.289.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.3 cmake-tools1.13.45 cpptools1.15.1 cpptools-extension-pack1.3.0 makefile-tools0.6.0 powershell2023.3.3 remote-explorer0.5. vsliveshare1.0.5834 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.17. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.16.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.45.0 vscode-java-debug0.49. vscode-java-dependency0.21. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41.


Question: } let ariaLabel = this.ariaLabel; <del> if (!ariaLabel) { </del> <ins> // Only set aria label to the input box placeholder if we actually have an input box. if (!ariaLabel && visibilities.inputBox) { </ins> ariaLabel = this.placeholder || QuickPick.DEFAULT_ARIA_LABEL; // If we have a title, include it in the aria label. if (this.title) {

vscode-spring-boot-dashboard0.12.0 vscode-spring-initializr0.11.2 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
This is happening because of the fix for I think it is behaving as designed, though will leave that with
That's a bit weird. Since experience does not visually render a placeholder. So I would not expect it gets read out.
Question is, should it say nothing, or is the aria-label for not correct and it should be ? I'm leaning "nothing" because otherwise they might have to hold down until the actual quick pick option highlighted is read out.
I have a fix out with the "nothing" idea... but would love to know what you folks think before I merge.
In version 1.77, when I press ctrl+tab, orca informs me that the focus has moved to a list box and the name of the next file is read. Imagining the following scenario: two files, a.js and b.js. start editing the a.js file. press ctlr+tab. My screen reader reads the following information: List Box, b.js. In my view this behavior would be sufficient.
It is fixed, thanks.


Question: extHost.dispose(); this._extHosts.delete(id); }); <ins> // See https://github.com/microsoft/vscode/issues/194477 // We have observed that sometimes the process sends an exit // event, but does not really exit and is stuck in an endless // loop. In these cases we kill the process forcefully after // a certain timeout. setTimeout(() => { try { process.kill(pid, 0); // will throw if the process doesn't exist anymore. this._logService.error(`Extension host with pid ${pid} still exists, forcefully killing it...`); process.kill(pid); } catch (er) { // ignore, as the process is already gone } }, 1000); </ins> }); return { id }; }

over the last week I have seen zombie processes running at full CPU load when trying to debug them (via SIGUSR1) they die analysed a crash dump and sees that this is because the EH is already in the process of shutting down the previous point matches the observation that no window reports its EH as having crashed <img width="1290" alt="Screenshot 2023-09-29 at 13 31 34" src=""
Can you take a process sample from the OS activity monitor, I hope the native stack can give a clue to what is happening.
Just happening. This is the command line of such an EH
This the process sample
Not sure about the part. Does this mean we run the EH under development or not?
It looks like we set that for all local EH process launches. Just having inspect-port doesn't put the process in debug mode. What you can do is use the "Debug: Attach to Process" command and select that process. This will fail, since the debugger won't then know what port it's listening on (if --inspect-port isn't given in the args, it always listens on 9229, and js-debug assumes that is what happens). But, then you can . AFter doing so you could grab a performance profile using the edge/chrome devtools on edge://inspect, or by attaching to that using an attach-type launch config VS Code and using the "take performance profile" command -- if the spin sample you recorded above isn't enough for Deepak to figure out what's going on.
Does that use SIGUSR1? Asking cos I have tried that first and sending the signal kills the process. From the crash dumps we do know that the process already was shutting down
Attaching the symbolicated sample Going from the top, indicates the EH process is already in the shutdown phase and has started to destroy the . At this point, connecting via a debugger is not possible since the agent host will stop receiving connections due to the following , so we cannot get perf profile from these processes. Moving further down most of the sample time is spent in which the environment gets deleted, this flushes the pending tasks in the libuv event loop but one thing to note is that entering JS via these tasks is not allowed due to the . But there are GC tasks being executed and which can enter JS.


Question: extHost.dispose(); this._extHosts.delete(id); }); <ins> // See https://github.com/microsoft/vscode/issues/194477 // We have observed that sometimes the process sends an exit // event, but does not really exit and is stuck in an endless // loop. In these cases we kill the process forcefully after // a certain timeout. setTimeout(() => { try { process.kill(pid, 0); // will throw if the process doesn't exist anymore. this._logService.error(`Extension host with pid ${pid} still exists, forcefully killing it...`); process.kill(pid); } catch (er) { // ignore, as the process is already gone } }, 1000); </ins> }); return { id }; }

I think the error calls ` are from these callsites eventually leading to . At this point, I expect the process to abort and the main process should be able to reap the utility process but that is not happening. There is another data point looking back at the screenshot from , the zombie EH processes are titled and not in the process explorer. We resolve the pids to respective titles based on a map maintained in the main process, the process explorer gets it periodically via the following and the utility process related values are populated from . We default to when the pid map no longer has an entry for the process which can only happen when got invoked which inturn suggests that the main process did receive an exit or crash signal from these EH hosts. can you check the main process logs next time if it has any of the following entries for the corresponding zombie EH pid to validate this data
I attempted to setup a similar flow based on the stack with base Electron app but the utility process are cleaned up as expected. I can make a change in the destruction phase of the utility process to signal termination of isolate so that tasks which require to enter JS will not do so and I hope that resolves the long running draintask. I won't be able to make a new insiders build with this change until I am back from vacation but I can provide a custom electron build for local testing with OSS. would that help to validate incase you face similar issue with OSS as well ?
Ah, my bad, skimmed over that part. Disregard. (Yes, it sends SIGUSR1 on unix)
I am seeing this for which is currently spinning forever. Samples for this one
i think i have the same issue on my mac. It happens from time to time and my workaround is simply killing vscode and then reopen it. But sometimes i don't realize it until my Mac has run out of battery, which can be quite annoying. <img width="963" alt="CleanShot 2023-10-09 at 19 46 49 src=""!
Having the exact same issue. utility-process is running at 100% all the time on M1 Max, very annoying.
This bug might also exist in Linux build of vscode: ! (6% 16 cores = 96%) Command line of "utility-process" is: eu-stack of main thread of this process: Noticed that is also inside sampling.


Question: extHost.dispose(); this._extHosts.delete(id); }); <ins> // See https://github.com/microsoft/vscode/issues/194477 // We have observed that sometimes the process sends an exit // event, but does not really exit and is stuck in an endless // loop. In these cases we kill the process forcefully after // a certain timeout. setTimeout(() => { try { process.kill(pid, 0); // will throw if the process doesn't exist anymore. this._logService.error(`Extension host with pid ${pid} still exists, forcefully killing it...`); process.kill(pid); } catch (er) { // ignore, as the process is already gone } }, 1000); </ins> }); return { id }; }

Manually sampling with eu-stack running every second, for one minute. (And might related to and )
Sorry if I'm hijacking the thread but would uninstalling Node and installing Bun solve this problem? Doesn't sound like it's a VSCode bug, right?
Thanks for the logs , the stack does look related. I wouldn't be surprised if the issue is also present on Linux since the shutdown path is same for both.
Similar issue on my M1 Max, sometimes I observe even 3/4 zombie processes running in the background and have to kill them manually from process manager to stop them from draining battery. 2 more samples for such process:
Checked log and it looks weird. : However, PID still exists and is running at 100%.
Another hang process today with log: "Extension host with pid started" "Extension host with pid exiting with code 0" "Extension host with pid exited with code: 0, signal: unknown."
Is there any temp workaround? any script or bash command that we can run to identify and kill those pid? I am interested to do it manually, because i have a M2 and i am rebooting my macbook after some hours because get soooo slow
Restarting VS Code should already "fix" the problem because the extension host is a child process of the application. At least that does the job for me. Are you observing a different behavior? Note that "Reload Window" does not kill the zombie process (according to my observation).
Please help by posting the list of installed extensions. I am looking for similarities between our setups as this is possibly caused by an extension. This is my list To get this list run or . Please do the same and post your results here. Thanks
Thanks for looking into this! I am also facing this issue quite frequently. Here are my installed extensions:
Thanks everyone. Looks like the intersection is
code --list-extensions
Yep, I'm using those extensions too. Here's the full list:
is not a very good workaround: what if the process exits, but another innocent process just takes this PID?
It probably cannot do that as the pid is still taken? I agree it's not a great workaround, but until the root cause is clear it does solve the issue where a cpu is occupied.


Question: import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookTextModel'; import { ICellDto2, INotebookEditorModel, INotebookLoadOptions, IResolvedNotebookEditorModel, NotebookCellsChangeType, NotebookData } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { INotebookSerializer, INotebookService, SimpleNotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookService'; <ins> import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; </ins> import { IFileWorkingCopyManager } from 'vs/workbench/services/workingCopy/common/fileWorkingCopyManager'; import { IStoredFileWorkingCopy, IStoredFileWorkingCopyModel, IStoredFileWorkingCopyModelContentChangedEvent, IStoredFileWorkingCopyModelFactory, IStoredFileWorkingCopySaveEvent, StoredFileWorkingCopyState } from 'vs/workbench/services/workingCopy/common/storedFileWorkingCopy'; import { IUntitledFileWorkingCopy, IUntitledFileWorkingCopyModel, IUntitledFileWorkingCopyModelContentChangedEvent, IUntitledFileWorkingCopyModelFactory } from 'vs/workbench/services/workingCopy/common/untitledFileWorkingCopy';

off the hot exit and auto save settings an interactive window, run a cell vscode :bug: confirmation pop-up to save the IW


Question: const model = this.model.read(reader); const suggestion = model?.selectedInlineCompletion.read(reader); const ghostText = model?.ghostText.read(reader); <del> const selectedSuggestItem = model?.selectedSuggestItem.read(reader); this.inlineCompletionVisible.set(selectedSuggestItem === undefined && ghostText !== undefined && !ghostText.isEmpty()); </del> <ins> this.inlineCompletionVisible.set(ghostText !== undefined && !ghostText.isEmpty()); </ins> if (ghostText && suggestion) { this.suppressSuggestions.set(suggestion.inlineCompletion.source.inlineCompletions.suppressSuggestions);

Type: <bBug</bIn previous VS Code version 1.78 when I pressed if inline suggest was visible with suggest widget it hides only inline suggest, if I press again same shortcut it then hides suggest widget. Now with 1.79 it hides both inline suggest and suggest widget. KeybindingService logs: My custom shortcuts to hide inline suggest & suggest widget: I even tried to add to clause and still it hides both. VS Code version: Code 1.79.0 (, 2023-06-07T14:31:03.317Z) OS version: Darwin arm64 22.5.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (12)</summaryExtensionVersion ------ vscode-eslint2.4.0 gitlens13.6.0 prettier-vscode9.13.0 copilot1.88.132 vscode-graphql0.8.13 vscode-graphql-syntax1.2.0 symbols0.0.11 vscode-react-native1.11.0 vscode-thunder-client2.7.6 vscode-fileutils3.10.1 vim1.25.2 quokka-vscode1.0.543 (1 theme extensions excluded) </details<!-- generated by issue reporter --
full text search doesn't reveal the context key anymore. Has that been removed/renamed?
It is
sorry I was writing that instead of copy-pasting. Already updated the issue.
Does it work when you swap the keybinding configurations? (Like literally exchange the positions in the file)
Still the same issue even if I swap places :(
So, its either the or context key. Can you investigate with the F1 Inspect Context Key Tools to see if those context keys are set. Note that it will print context keys on the console of DevTools
<details<summaryContext keys</summary</details
as you can see is and is , but even though inline suggest was visible it returned false.
Same in the monaco, if the suggest widget is visible, the inlineSuggestWidgetVisible will always be false no matter there is any ghost text or not
<!-- 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.


Question: const model = this.model.read(reader); const suggestion = model?.selectedInlineCompletion.read(reader); const ghostText = model?.ghostText.read(reader); <del> const selectedSuggestItem = model?.selectedSuggestItem.read(reader); this.inlineCompletionVisible.set(selectedSuggestItem === undefined && ghostText !== undefined && !ghostText.isEmpty()); </del> <ins> this.inlineCompletionVisible.set(ghostText !== undefined && !ghostText.isEmpty()); </ins> if (ghostText && suggestion) { this.suppressSuggestions.set(suggestion.inlineCompletion.source.inlineCompletions.suppressSuggestions);

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!
Now I see us hiding the suggest widget first and the inline suggest second, is that expected? This is true regardless of what order I declare the keybindings in (I do have the Vim extension installed)
It should hide first inline suggestions and second time you press it, it should hide suggest widget. Try to swap places of keybindings to see if it fixes it (order maybe matters?). Because previously this is how it worked (in 1.78, but regression was introduced in 1.79). EDIT: Oh I see you mentioned that order doesn't matter. Try to add in clause for command (I hope it works).
is it fixed for you on the latest insider builds The following does not work for me either
It works! !
Great, thanks for confirming!


Question: this.findInput.inputBox.select(range); } <del> getSelection(): IRange | null { return this.findInput.inputBox.getSelection(); } </del> isSelectionAtEnd(): boolean { return this.findInput.inputBox.isSelectionAtEnd(); }

open normal quick pick () type notice you want symbol search and select the cursor is random, within the word, and doesn't select the previous input anymore


Question: async getQuickDiffs(uri: URI, language: string = '', isSynchronized: boolean = false): Promise<QuickDiff[]> { const providers = Array.from(this.quickDiffProviders) <del> .filter(provider => !provider.rootUri || isEqualOrParent(uri, provider.rootUri)) </del> <ins> .filter(provider => !provider.rootUri || this.uriIdentityService.extUri.isEqualOrParent(uri, provider.rootUri)) </ins> .sort(createProviderComparer(uri)); const diffs = await Promise.all(providers.map(async provider => {

Type: <bBug</bTo reproduce: VS Code a folder and choose a git repo with changes a file with changes and notice the gutter is shown a folder to the workspace and choose a git repo the gutter is still visible close the file and reopen it Expected behavior: the gutter is shown Actual behavior: the gutter is not shown this may be related to . actually pretty much the same issue. However a reload (I assume that is ) doesn't help in this case. VS Code version: Code - Insiders 1.77.0-insider (, 2023-03-10T05:24:23.805Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: Yes <details<summarySystem Info</summary </detailsExtensions: none<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for the @ mention and for the repro steps!
Also having the same issue. Installing a previous version () helped to solve it (temporarily, until it's fixed).
Folks who are seeing this issue: Could you please install the latest insiders build and confirm that you no longer see the issues there?
Yes. The issue resolved in the latest insider version.
Related Stack Overflow questions: I'd prefer using this one as a duplicate target on Stack Overflow since it's asked much cleaner.
Thanks for confirming that the issue is fixed in insiders!
Wow, so it was a bug, not an actual symlink-issue as I thought. So happy now, thanks! Context: I'll try the fix/update.
This issue seems to be fixed in version 1.76.2 for git repositories, however it is not yet fixed for Mercurial ( extension).
I am still seeing this bug in
can you share some exact repro steps that we can use to reproduce the issue?
I can't reproduce the issue on a new clean git repo, hmm
Im having the same issues, reinstalling helped fix the current file having the issue but any file created after wont show the indicators. Disabling extensions wont work either and Im not sure on how to reproduce the steps Version: 1.76.2 (user setup) OS: Windows_NT x64 10.0.


Question: title: { value: 'Preferences', original: 'Preferences', <del> mnemonicTitle: localize('mPreferences', "Preferences") </del> <ins> mnemonicTitle: localize({ key: 'mPreferences', comment: ['&& denotes a mnemonic'] }, "Preferences") </ins> }, when: IsMacNativeContext, order: 9

Issue Type: <bBug</bGo to menu affichage apparence afficher la barre latérale secondaire L'item indique ceci " afficher la bar&re latérale secondaire" Un petit And & se balade Have a nice day VS Code version: Code 1.67.1 (, 2022-05-06T12:37:03.389Z) OS version: WindowsNT x64 10.0. Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (3)</summaryExtensionVersion ------ copilot1.20.5902 vscode-pull-request-github0.42.0 vscode-language-pack-fr1.67.3 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
the translation lacks an extra ampersand to turn this into a mnemonic <img width="501" alt="image" src="https://user-"
can you ensure there's a comment that says "don't touch the ampersand"? Additionally, you can add another comment in the form of: to ensure that they do not get "translated". See this example:
I have the same comment in 275 places across the code base And this is the string
Best I can do is ask for the string to be updated manually to ensure is not translated... but that won't prevent this from happening in the future due to human error. better is using a locked comment like the one above... could also have the be a runtime string instead... but really we need language-aware mnemonics where the position of the changes based on the language but I'm not sure if there's a process for that. do you know?
so I add? what kind of enforcement does this do? does it just force that a mnemonic exists? its not really required that a translation contains a mnemonic even if the original does
I believe it forces that it exists, though or are experts here.
I know a little bit more... this does basically "fail the string" until it meets the criteria of "there should be a somewhere in the string and a translator looks at this. did you get the chance to add this to the comments?


Question: const outputElement = (prev.firstChild as HTMLElement | null); if (outputElement && outputElement.getAttribute('output-mime-type') === outputInfo.mime) { // same stream <del> const text = outputInfo.text(); const element = document.createElement('span'); </del> <ins> // find child with same id const existing = outputElement.querySelector(`[output-item-id="${outputInfo.id}"]`) as HTMLElement | null; if (existing) { clearContainer(existing); } const text = outputInfo.text(); const element = existing ?? document.createElement('span'); element.classList.add('output-stream'); element.setAttribute('output-item-id', outputInfo.id); </ins> insertOutput(outputInfo.id, [text], ctx.settings.lineLimit, ctx.settings.outputScrolling, element); outputElement.appendChild(element); return;

<!-- 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: Stable & Insiders OS Version: Any Steps to Reproduce: Jupyter extension the following cell against a Python kernel The expected output is fairly simple: ( can appear some where in the middle) However VS Codes output is incorrect We are missing the line breaks (looks like this PR seems to have broken that) (using blockinline-block` fixes this). We have duplicate entries (as you can see below, we have multiple times) i think this has to do with the fact that we're trying to re-use the previous output and append the new stuff into the previous output element Note: This can be repro'ed in stable as well, but if i were to remove the code that tries to append to the previous element, then it looks as expected. Not sure when this part of the code broken though. Didn't go through the change log to determine this, you might have a better idea.
note that this is from the test, so that could probably be modified to check for the fix
It looks like this was briefly solved (at least for me as I reported in ) but the problem is now reappearing.
I agree, I can replicate the same bug again, hence reopening this issue. Looks like subsequent change regressed the fix.
seems to be a worse regression now (only in insiders) and repros without needing to do anything with background threads (unless I just have some bad setting): !
I'm seeing something similar with the JavaScript/tslab notebook I use for teaching async and promises. Previously, the output was inconsistent across runs with sometimes missing or duplicated output.


Question: const outputElement = (prev.firstChild as HTMLElement | null); if (outputElement && outputElement.getAttribute('output-mime-type') === outputInfo.mime) { // same stream <del> const text = outputInfo.text(); const element = document.createElement('span'); </del> <ins> // find child with same id const existing = outputElement.querySelector(`[output-item-id="${outputInfo.id}"]`) as HTMLElement | null; if (existing) { clearContainer(existing); } const text = outputInfo.text(); const element = existing ?? document.createElement('span'); element.classList.add('output-stream'); element.setAttribute('output-item-id', outputInfo.id); </ins> insertOutput(outputInfo.id, [text], ctx.settings.lineLimit, ctx.settings.outputScrolling, element); outputElement.appendChild(element); return;

Now all the expected output is present but with line breaks appearing only after some async code (e.g. ) is executed. <img width="661" alt="image" src="https://user-"
I reproduced output shown by above with missing new lines in code-insiders at ~14:00 UTC +1 (CET). In a code-insiders session that has been running last 24 hours. Restarting code-insiders approximately an hour later (15.00 UTC+1), the output is now shown with correct line breaks, see screenshot below. Version: 1.75.0-insider (user setup) Commit: Date: 2023-01-09T05:29:27.679Z Electron: 19.1.8 Chromium: 102.0.5005.167 16.14.2 V8: 10.2.154.15-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes Output after code-insiders restart: !
confirmed that this no longer seems to reproduce on the latest.
Adding label as confirmed above.


Question: })); this._register(this.parentData.parent.onScroll(() => { <del> this.parentData.parent.focus(false); this.cleanupExistingSubmenu(false); </del> <ins> if (this.parentData.submenu === this.mysubmenu) { this.parentData.parent.focus(false); this.cleanupExistingSubmenu(true); } </ins> })); }

VSCode freeze on mouse wheel scrolling with lot of tests: open test explorer, ! right-click on the test button scroll tests with mouse wheel at least twice VS Code version: Code - Insiders 1.64.0-insider (, 2021-12-22T05:15:27.690Z) OS version: Linux x64 5.4.0-92-generic Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (20)</summaryExtensionVersion ------ vscode-eslint2.2.2 gitlens-insiders2021.12.2804 EditorConfig0.16.4 prettier-vscode9.0.0 themeswitch1.0.5 rpm-spec0.3.2 vscode-docker1.18.0 python2022.0.-dev vscode-pylance2021.12.3-pre.1 jupyter2022.1. jupyter-keymap1.0.0 jupyter-renderers1.0.4 remote-containers0.209.6 remote-ssh0.70.0 remote-ssh-edit0.70.0 code-stats-vscode1.0.18 code-spell-checker2.0.14 code-spell-checker-russian2.0.2 cron-explained1.3.1 material-theme3.13.8 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Looks like doesn't help.
Thanks (again) for the issue!


Question: const specIcon = gulp.src('resources/linux/rpm/code.xpm', { base: '.' }) .pipe(rename('SOURCES/' + product.applicationName + '.xpm')); <del> const all = es.merge(code, desktop, appdata, icon, spec, specIcon); </del> <ins> const all = es.merge(code, desktop, desktopUrlHandler, appdata, icon, spec, specIcon); </ins> return all.pipe(vfs.dest(getRpmBuildPath(rpmArch))); };

This may be useful as a hint: Please, take a two minutes to look into source, it may work only for :
I think adding a desktop file with that launches VS Code with is what's needed to implement this.
nice relevant gist:
VS Code has native support for opening it's own URL scheme via the hidden argument, I don't think there is a need for wrapper script shenanigans. I'm going to submit a PR.
I've not checked too far into it (Just subscribed to this to keep up to date) but the wrapper script is probably there because in the standard would include the "vscode://" prefix.
That's what should happen, that's what handles. :smiley: You can test if you like. Alternatively you can test this (Which is what the PR adds): For OSS: For release version: Drop it into or and run on that directory.


Question: export function incrementFileName(name: string, isFolder: boolean): string { const separators = '[.-_]'; <ins> const maxNumber = Constants.MAX_SAFE_SMALL_INTEGER; </ins> // file.1.txt=>file.2.txt let suffixFileRegex = RegExp('(.*' + separators + ')(d+)(..*)$'); if (!isFolder && name.match(suffixFileRegex)) { return name.replace(suffixFileRegex, (match, g1?, g2?, g3?) => { <del> return g1 + strings.pad(parseInt(g2) + 1, g2.length) + g3; </del> <ins> let number = parseInt(g2); return number < maxNumber ? g1 + strings.pad(number + 1, g2.length) + g3 : strings.format('{0}{1}.1{2}', g1, g2, g3); </ins> }); }

Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable


Question: const root = new RootTreeItem(this.debugService.getModel(), this.environmentService, this.contextService); this.tree.setInput(root); <del> let timeout: number; </del> const registerLoadedSourceListener = (session: ISession) => { this.disposables.push(session.onDidLoadedSource(event => { const sessionRoot = root.add(session); sessionRoot.addPath(event.source); <del> clearTimeout(timeout); timeout = setTimeout(() => { if (this.tree) { this.tree.refresh(root, true); } }, 300); </del> <ins> this.shouldRefreshRecursive = true; this.treeRefreshScheduler.schedule(); </ins> })); };

debugging the loaded scripts view open debugging, notice exception in the console can not reproduce with Stable so it might be that my listener refactoring caused this If you pause on exception you will see that caused it.
did you have a chance to look into this? Or would you like me to investigate? I suspect this is breaking the loaded scripts view and is the root cause for
no, please investigate since this and was working before, and I haven't touched this code for two weeks.
end session events are not arriving in As a consequence the tree for the session is not properly removed.
I see something differnetly, the end sessions are arriving however when the last session end arrives view starts refreshing the tree and while that is in progress the view gets disposed which throws an exception. Looking into a fix...
I have created a PR which address this issue


Question: original: 'Run', mnemonicTitle: nls.localize({ key: 'mRun', comment: ['&& denotes a mnemonic'] }, "&&Run") }, <del> when: ContextKeyExpr.or(CONTEXT_DEBUGGERS_AVAILABLE), </del> order: 6 });

Reminded of this by We currently have a context key (when clause) for the run menu (in the main menu). This means we don't know if the menu should be displayed on startup because it depends on extensions. The Terminal menu also has a context key but resolves very quickly so there is no delay. Should we remove both of these when clauses in favor of keeping them around with possibly disabled menu items. E.g. The "Install additional debuggers" entry should still be shown in the run menu if no current contexts are available.
Assigning to who now owns the Debug UI. Rob let me know if I can help here.
Which menu are you talking about? How is the context menu involved?
Context Menu should have been Context Key. Sorry about that, I'll edit the original post.
Looks like has decided to go this route with the Terminal menu, so I think we should align here too.
So the terminal menu will be shown all the time in web? That's what will happen with Run. I guess it will show "Install additional debuggers" And should other items be disabled or missing? They currently use so are missing. It would look like this <img width="245" alt="image" src="https://user-"I'm fine with that if it's consistent. Sort of gives false hope about what you're going to find, though
Actually, if the Run menu doesn't have a when clause, but all the subitems do and it is false, then the Run menu still doesn't show up. Would that be ok or is that still slow?
Won't install additional debuggers always be visible?
It currently has a when clause to only show up when other debuggers are present, it would only show up if I remove that. And I think "install additional debuggers" usually won't give the user what they want.
I see that entry as a way for users to discover how to get our web-based code execution extensions like Python. Maybe the text is not right? We could even have a web specific entry that filters the extension list to web-supported debuggers instead of all?
Yeah, I think that when those exist we should think about what the onramp looks like. For now I'll remove the when clause on the Run menu if you think that's the right thing to do.


Question: original: 'Run', mnemonicTitle: nls.localize({ key: 'mRun', comment: ['&& denotes a mnemonic'] }, "&&Run") }, <del> when: ContextKeyExpr.or(CONTEXT_DEBUGGERS_AVAILABLE), </del> order: 6 });

sounds good, thank you
Ok, this actually isn't working the way I thought it did, and the result is that the Run menu never shows, at all. I must have tested it wrong, maybe you have to restart vscode for native menu changes to take full effect? The current state is that the Run menu has no when clause, and every command inside the menu does have a when clause. But the result seems to be: If the menu doesn't have a when clause, but initially doesn't have any enabled commands inside it, then it doesn't appear and will never appear, even if the commands inside it later get their when clauses flipped to true. The only way to get it to conditionally appear is to add a when clause to the menu itself. Does that sound like a menu bug But also I can just go back to having "Install additional debuggers" enabled all the time, I think that's fine.
that very well could be a menu bug. but thinking about it, I think having the one item always in the menu is necessary because otherwise we still result in the behavior where we don't know for some time on startup whether to show the menu or not which causes flickering.
is it expected that all of these items in the run menu are active in web? <img width="163" alt="image" src="https://user-"
You probably have some extension enabled for web which claims it can debug
Mock Debug and Python, thanks


Question: const workingCopyAdapter = new class implements IWorkingCopy { readonly resource = input._workingCopyResource; get name() { return input.name; } <del> readonly capabilities = input.capabilities; </del> <ins> readonly capabilities = input.isUntitled() ? WorkingCopyCapabilities.Untitled : input.capabilities; </ins> readonly onDidChangeDirty = input.onDidChangeDirty; readonly onDidChangeContent = input.onDidChangeContent; isDirty(): boolean { return input.isDirty(); }

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- Version: 1.46.0-insider Commit: Date: 2020-06-01T10:32:27.369Z Electron: 7.3.0 Chrome: 78.0.3904.130 12.8.1 V8: 7.8.279.23-electron.0 OS: Darwin x64 19.5.0 Steps to Reproduce: a new untitled notebook (using VS Code Python extension) you add a cell or the like, then VSC will invoke the save method on the Problems Adding cells should not invoke save (this happens when user has auto save turned on) Errors thrown in the method are ignored. VSC will assume the notebook was saved and mark it as not dirty (the dirty indicator doesn't exist on the tab anymore) I don't think VSCode should call the method for untitled notebooks. FYI - We create untitled notebooks with a scehme . If this isn't the way to indicate an untitled file (scheme), we might need some API or the like in the notebooks implememtation. /cc
Good catch, untitled file should not trigger save until users explicitly run Save, which will invoke SaveAs.
We should also improve the overall experience for creating untitled notebook documents, they can be created in two approaches: Users press cmd/ctrl+n to create an untitled file, switch to another view type (tracked in ) Users run a specific command to quickly create a notebook untitled file. command should take view type as arguments. cc we may also want to adopt this in Custom Editor world.
We now support opening a untitled file with specified editor view type through the existing new untitled file command (in master, and tomorrow's Insiders) When the command is executed, is invoked with an URI with scheme. is invoked only when users save so no auto save for untitled files as usual.


Question: // Only Launch have a pin trigger button await (launch as Launch).writeConfiguration(config); await this.selectConfiguration(launch, config.name); <ins> this.removeRecentDynamicConfigurations(config.name, config.type); </ins> })); });

Testing microsoft/vscode-python Following the steps, I first used the auto-generated launch configuration. This meant that it didn't exist in the I then repeated the steps by clicking the gear to create it in the the dropdown now has 2 entries with duplicate titles. I would expect that the non-file-backed configuration just disappears now that we use a Not sure if this is extension specific or the responsibility of core.
How did you trigger second time to get the dynamic one? after creating the After, , i don't see the debug welcome screen.
Using one of these methods
Thanks for the bug report. VSCode handles the auto debug configuration behavior, so I'll transfer the issue to their repository.
This still repros: ! Steps: with no file open, show all automatic: ! python -Get expected error: ! one shows up... great... now pick : ! hit the on : ! See two: !
Additionally... maybe a different issue, I noticed that if I do this: with no file open, show all automatic: ! python -Get expected error: ! one shows up... great... now pick : ! Hit to get rid of the quick pick: ! is still selected in the ! and the only way to get back to the Picker I escaped out of is to choose a different launch config in the drop down and then select again. Seems a bit odd. I would have expected the play button to give me the picker or selecting even if it's already chosen to re-trigger the picker.
I fixed a different issue... I removed the duplicate from the quick pick, but not from the debug sidebar dropdown. Same data source, I think the dropdown just needs something else to refresh it.
Handling these dynamic configs is tricky - the way they are represented, they look mostly the same as a real launch config with the same name, and there is probably another case where we fail to tell the difference
Following the steps, I now get 2 different titles but still very similar. Not sure if this is breaking any checks that you do <img width="212" alt="image" src="https://user-"
How did you get without the ? I tried again and don't see that.


Question: // Only Launch have a pin trigger button await (launch as Launch).writeConfiguration(config); await this.selectConfiguration(launch, config.name); <ins> this.removeRecentDynamicConfigurations(config.name, config.type); </ins> })); });

Is that the name in your I have and <img width="173" alt="image" src="https://user-"and I'm not sure how to get a different name in the saved config.
That is what was generated in my launch config, yes, I did not create it manually. I am on Windows.
I can't repro it. If you want, you can show me. But, if this happens somehow, I don't think I can improve the situation anyway, because two configs with different names are just two different configs.
I still managed to repro using SteVen's original steps in this issue <img width="248" alt="image" src="https://user-"
I can't repro the issue, are you sure you didn't end up with duplicate entries in If not can you open the quick access for and share a screenshot? Or just call me sometime so I can try?
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!


Question: import * as path from 'path'; import * as fs from 'fs'; <del> const reAbsolute = /^/+/; </del> <ins> const reAbsolutePosix = /^/+/; const reAbsoluteWin32 = /^+/; const reAbsolute = path.sep === '/' ? reAbsolutePosix : reAbsoluteWin32; </ins> /** * Locates given `filePath` on user’s file system and returns absolute path to it.

<!-- Do you have a question? Please ask it on For bug reports, please fill in the details below. For feature requests, please describe the desired feature. --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.23.1 OS Version: Windows 10 Enterprise Ver.1703 build .877 Im trying action. but, this action working only absolute path. is working code (absolute path) ex: - Emmet: Update Image size -not working code (root relative path) ex: - Emmet: Update Image size -its not working... <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: No
Thanks for reporting PRs are welcome to fix this issue. The code behind this feature is at
Hi, I'm interested in this bug. I noticed the person filing the bug gives as a example of a working path. I believe that path means that in the current working directory there should be folder called that has another folder named which has photo in it. However, is given as an example of the command not working. It is true that this path doesn't work but I believe that is intentional. at the beginning means it starts at the root and because of that it may be looking for in a different spot in the directory. For example, if my absolute path to a image is like this: and the location to the html file being editing is in here: I can't run the command with this code: But I can run it on this: and this: Hopefully this information is useful.
Thanks for the detailed analysis I can confirm your findings. Can you share what your folder structure is? Unless folder is directly under root, we cannot expect the command to work on Also see
thx comments. I can be submitted sample folder structure. Sample folder structure is working code of path: is not working code of path but, code is Ctrl + LClick (img Preview) is working. because I think passed root path of VSCode.
Are you on Windows, Linux or Mac?
Windows
Ctrl+Click will navigate to the image file in the first 2 cases as expected in both Mac and Windows The works on all 3 cases in Mac, but only the first case in Windows. So, at the very least, we can look into if we can get the second case working to keep the experience consistent between the Ctrl+Click and the Emmet experience


Question: import { CharCode } from 'vs/base/common/charCode'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; <del> import { SequenceFromIntArray, OffsetRange, SequenceDiff, ISequence } from 'vs/editor/common/diff/algorithms/diffAlgorithm'; </del> <ins> import { OffsetRange, SequenceDiff, ISequence } from 'vs/editor/common/diff/algorithms/diffAlgorithm'; </ins> import { DynamicProgrammingDiffing } from 'vs/editor/common/diff/algorithms/dynamicProgrammingDiffing'; import { optimizeSequenceDiffs } from 'vs/editor/common/diff/algorithms/joinSequenceDiffs'; import { MyersDiffAlgorithm } from 'vs/editor/common/diff/algorithms/myersDiffAlgorithm';

Diffing the files: original: modified: <img width="1127" alt="image" src="https://user-"It would be better to line up things differently and give preference to having lines with smaller indent be boundary lines. fyi
Very nice idea!! Very valuable example. I can implement this in the experimental diffing algorithm, and soon we can discuss to deprecate the smart diffing algorithm ().
Implemented in the experimental diff algorithm (not smart). Let's try to deprecate the smart diff algorithm in favor of the experimental in the next milestones.
Closing, as this is implemented in the experimental diff algorithm, which is now the default. To verify, try it out in the playground:


Question: newArgs[newArgs.length - 1] = format(newArgs[newArgs.length - 1], appRoot); // Move .zshrc into $ZDOTDIR as the way to activate the script <del> const zdotdir = path.join(os.tmpdir(), `${os.userInfo().username}-${productService.applicationName}-zsh`); </del> <ins> let username: string; try { username = os.userInfo().username; } catch { username = 'unknown'; } const zdotdir = path.join(os.tmpdir(), `${username}-${productService.applicationName}-zsh`); </ins> envMixin['ZDOTDIR'] = zdotdir; const userZdotdir = env?.ZDOTDIR ?? os.homedir() ?? `~`; envMixin['USER_ZDOTDIR'] = userZdotdir;

<!-- 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.74.2 OS Version: Ubuntu 22.04 LTS (with all updates applied) Steps to Reproduce: in using a Active Directory account (Ubuntu must be joined into an Active Directory Domain) Visual Studio Code Terminal tab, click on [ + ] sign to open a new terminal, choosing zsh. A empty terminal tab opens and no shell is launched When I look in Output tab, section 'Shared', the following log lines were found By looking at message, it seems vscode is looking at /etc/passwd for some reason. And it may be failing because when I log in with an Active Directory account, no /etc/passwd entry is created for my user, because sssd/realm does not write entries on that. I opened a terminal Window and grab the following output for helping debugging:
Looks like we need to try catch 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!
Verified by code review (but would still appreciate your
I confirmed now that it´s working as expected. Nice job from team! <img width="1009" alt="image" src="https://user-"


Question: resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-3.0.0.tgz#d52238c9052d746c9689523e650160e70786bc9a" integrity sha512-OAdBVB7rlwvLD+DiecSAyVKzKVmSfXbouCyM5I6wHGi4MGXIyFqErg1IvyJ7PI1e+GYZuZh7cCHV/c4LA8SKMw== <ins> "@vscode/deviceid@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@vscode/deviceid/-/deviceid-0.1.1.tgz#750e2930a3a8fbf3fd610096a8b915dfdb493c89" integrity sha512-ErpoMeKKNYAkR1IT3zxB5RtiTqEECdh8fxggupWvzuxpTAX77hwOI2NdJ7um+vupnXRBZVx4ugo0+dVHJWUkag== dependencies: fs-extra "^11.2.0" uuid "^9.0.1" </ins> "@vscode/iconv-lite-umd@0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@vscode/iconv-lite-umd/-/iconv-lite-umd-0.7.0.tgz#d2f1e0664ee6036408f9743fee264ea0699b0e48"

a folder in WSL and show logs the error log !
Are things broken in this case or just a bad stack trace. I'll take a look to see if I missed a module include somewhere
Just a bad stacktrace from what I see, though I didn't intentionally go test things thoroughly


Question: ]; private readonly isEnabledCache = new CachedFunction<AudioCue, IObservable<boolean>>((cue) => observableFromEvent( <del> this.audioCueService.onEnabledChanged(AudioCue.onDebugBreak), () => this.audioCueService.isEnabled(AudioCue.onDebugBreak) </del> <ins> this.audioCueService.onEnabledChanged(cue), () => this.audioCueService.isEnabled(cue) </ins> )); constructor(

<!-- 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.7.2 OS Version: windows Steps to Reproduce: a file with error on `cue: line has an error" settings the cursor to there
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.73.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
it still occurs with 1.73.1
yeah I can reproduce this issue. is this expected?
This is not expected. Sounds should be played when cursor is navigated to the error line. worked on this initially and might have more details
I also have the same problem, but this only occurs in the insider version, I have the latest version and no sound is played Issue:
They play in OSS, but not insider's. any idea why that would be?
if that is the case then it is probably related to code bundling. Does that sound play when you F1 list audio cues?
It does play when I list audio cues in both OSS and insider's.
It also plays for terminal quick fixes - suggesting there's a bug in because I can also repro it not playing for other line feature types
This has been working for me lately, though it was definitely broken at one pt.
I have set to I navigate to a line with an error-squiggle but there is no sound being played


Question: } else { // command text = result.rawLabel; } <del> instance.sendText(text, !quickPick.keyMods.alt, true); </del> quickPick.hide(); <ins> runCommand(instance, text, !quickPick.keyMods.alt); </ins> if (quickPick.keyMods.alt) { instance.focus(); }

Repro: in a terminal and select something ! We should hit ctrl+c beforehand () which should work properly on all shells
We should also do this when is clicked in the decoration's context menu
I attempted this in but it was more complicated than I originally anticipated. Moving to backlog.


Question: "command": "ipynb.cleanInvalidImageAttachment", "title": "%cleanInvalidImageAttachment.title%" }, <del> { "command": "notebook.cellOutput.copy", "title": "%copyCellOutput.title%" } </del> <ins> { "command": "notebook.cellOutput.copy", "title": "%copyCellOutput.title%" } </ins> ], "notebooks": [ {

Type: <bBug</bI have noticed two problems with my vscode-insiders installation which I assume may form one issue. a notebook in nbformat 4.5 is opened, new cells do not receive cell ids, even though this is required by the format spec and is a documented feature of vscode: a new notebook is created, the format is always 4.2. I am not sure whether this is expected. Steps to reproduce: a notebook with jupyterlab or any other way (jupytext etc.), and verify that it has nbformat = 4.5 the notebook in vscode, and generate a new cell, then save. the JSON of the saved notebook - the new cell does not have a cell id. Some additional points which may be of interest The issue persists when all extensions except jupyter/python are disabled. I have recent versions of nbformat etc. installed, but I would assume this is bundled with vscode anyway. The issue also exists on the current pre-release version of the jupyter extension. I haven't found any configuration option which would enable or disable support of notebook formats 4.2 Maybe I have missed a configuration option which I should have set? VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-23T05:33:33.712Z) OS version: Linux x64 6.2.0-35-generic Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (18)</summaryExtensionVersion ------ vscode-neovim0.9.1 vscode-eslint2.4.2 githistory0.6.20 fuzzy-search0.0.3 black-formatter2023.5. python2023.19. vscode-pylance2023.7.40 jupyter2023.10. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 remote-ssh0.107. remote-ssh-edit0.86.0 remote-explorer0.5. remote-server1.5.


Question: "command": "ipynb.cleanInvalidImageAttachment", "title": "%cleanInvalidImageAttachment.title%" }, <del> { "command": "notebook.cellOutput.copy", "title": "%copyCellOutput.title%" } </del> <ins> { "command": "notebook.cellOutput.copy", "title": "%copyCellOutput.title%" } </ins> ], "notebooks": [ {

even-better-toml0.19.2 my-vscode-utils0.0.2 pyexec0.0.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thank you for filing this issue and sorry you are running into this. I can replicate this at my end as well. Will look into this.


Question: template.navbar.push(NavbarSection.ExtensionPack, localize('extensionPack', "Extension Pack"), localize('extensionsPack', "Set of extensions that can be installed together")); } if (manifest && manifest.contributes) { <del> template.navbar.push(NavbarSection.Contributions, localize('contributions', "Contributions"), localize('contributionstooltip', "Lists contributions to VS Code by this extension")); </del> <ins> template.navbar.push(NavbarSection.FeatureContributions, localize('contributions', "Feature Contributions"), localize('contributionstooltip', "Lists contributions to VS Code by this extension")); </ins> } if (extension.hasChangelog()) { template.navbar.push(NavbarSection.Changelog, localize('changelog', "Changelog"), localize('changelogtooltip', "Extension update history, rendered from the extension's 'CHANGELOG.md' file"));

Issue Type: <bFeature Request</bI never used the "Contributions" tab in extensions, thinking it was for recent github contributions to the extension. I accidentially pressed it once, and found it very useful. I think the name "Contributions" is confusing and that "Details", "Internals" , "Technical Details", or something similar would make it much clearer. VS Code version: Code 1.41.1 (, 2019-12-18T15:04:31.999Z) OS version: Linux x64 5.4.14-200.fc31.x86_64 <!-- generated by issue reporter --
These are in fact contributions to VS Code. How about ?
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!


Question: import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { ansiColorIdentifiers, TERMINAL_BACKGROUND_COLOR, TERMINAL_FOREGROUND_COLOR, TERMINAL_CURSOR_FOREGROUND_COLOR, TERMINAL_CURSOR_BACKGROUND_COLOR, TERMINAL_SELECTION_BACKGROUND_COLOR } from 'vs/workbench/parts/terminal/common/terminalColorRegistry'; import { PANEL_BACKGROUND } from 'vs/workbench/common/theme'; <del> import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; </del> <ins> import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; </ins> import { IEditorOptions } from 'vs/editor/common/config/editorOptions'; <del> import { INotificationService } from 'vs/platform/notification/common/notification'; </del> <ins> import { INotificationService, Severity, IPromptChoice } from 'vs/platform/notification/common/notification'; </ins> import { ILogService } from 'vs/platform/log/common/log'; import { TerminalCommandTracker } from 'vs/workbench/parts/terminal/node/terminalCommandTracker'; import { TerminalProcessManager } from './terminalProcessManager'; <ins> import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; // How long in milliseconds should an average frame take to render for a notification to appear // which suggests the fallback DOM-based renderer const SLOW_CANVAS_RENDER_THRESHOLD = 50; </ins> let Terminal: typeof XTermTerminal;

Upstream:
It's not true that it takes very long. It does not get visible at all. I have to downsize the terminal pane to a certain size to make it visible again. In my case it's about 5-10 lines. Seems to me that the canvas is not resized properly. There are no problems if I disable GPU rendering (code --disable-gpu). Also without any noticeable performance issues. Would be nice to have a flag in the preferences to disable GPU rendering as a quick workaround. One of the reasons for using code (instead of Atom or Sublime) was the integrated terminal which seems to be broken since the new canvas rendering was introduced. My System Config: OS X 10.11.6, GPU: NVidia 8800, 4GB RAM
that will probably get fixed as part of this as well, it's probably something to do with your GPU/Chromium not liking the texture sizes above a certain size.


Question: } }, { <del> "name": "Markup Inline", "scope": "markup.inline.raw", </del> <ins> "name": "Markup: Strong", "scope": "markup.bold", </ins> "settings": { <del> "fontStyle": "", "foreground": "#cd8d8dff" </del> <ins> "fontStyle": "bold" </ins> } }, { <del> "name": "Markup Headings", "scope": "markup.heading", </del> <ins> "name": "Markup: Emphasis", "scope": "markup.italic", </ins> "settings": { <del> "foreground": "#fec758ff" </del> <ins> "fontStyle": "italic" </ins> } }, { <del> "name": "Markup Setext Header", "scope": "markup.heading.setext", </del> <ins> "name": "Markup Inline", "scope": "markup.inline.raw", </ins> "settings": { "fontStyle": "", <ins> "foreground": "#cd8d8dff" } }, { "name": "Headings", "scope": [ "markup.heading", "markup.heading.setext", "punctuation.definition.heading", "entity.name.section" ], "settings": { "fontStyle": "bold", </ins> "foreground": "#fec758ff" } },

<!-- 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 is essentially a more general issue of the closed Markdown styling support are missing in the following, missing bold and italic: Solarized Light Red Abyss Solarized Dark Tomrrow Night Blue See screenshot below for an example. For High Contrast, section heading () are not in bold. I am unclear if it's a bug or intentional. Screenshot for Solarized Dark !
Hi, I tried bold and italic with these themes: theme-tomorrow-night-blue theme-solarized-dark theme-solarized-light theme-red theme-kimbie-dark theme-abyss hcblackdefaults(High Contrast)


Question: { urlFormat: '{0} ({1}, {2})', line: '5', column: '3' }, { urlFormat: '{0}:{1}', line: '5' }, { urlFormat: '{0}:{1}:{2}', line: '5', column: '3' }, <ins> { urlFormat: '{0} {1}:{2}', line: '5', column: '3' }, </ins> { urlFormat: '{0}[{1}]', line: '5' }, { urlFormat: '{0} [{1}]', line: '5' }, { urlFormat: '{0}[{1},{2}]', line: '5', column: '3' },

It is possible with VSCode to follow a path printed in the terminal. When that path also contains the line and column number in the format ( ≙ line number; ≙ column number), VSCode currently doesn't interpret it completely and therefore doesn't also jump to the line/column in the opened file. Example: ` This path format indicates the path to the file but also the line (49) and column (46) number. Ctrl + clicking this path currently in VSCode will open the file but not jump to the line or the column. As this format is used by many linters and compilers (e.g. SASS), it would be a very useful and time-saving feature.
Code link: I think here we'd want to require the exact (num)(colon)(num) to prevent problems with (link) (number) (text)
nice feature for many front end build tools.
I PR for this.


Question: } } <del> class RemoveRootFolderAction extends Action2 { </del> <ins> export class RemoveRootFolderAction extends Action2 { </ins> static readonly ID = 'workbench.action.removeRootFolder';

Steps: multi root workspace with 2-3 folders right click into empty space below last folder select "Remove Folder from Workspace" nothing happens //cc
I guess this should remove the last workspace folder.
Not sure, if you invoke this command from F1 list, you get a picker asking which folder to remove. We could do the same here.
Sometimes the empty area takes the last workspace folder as context and sometimes not. So we should be consistent and check what other actions do on the empty area. Maybe the only exception is actually drag and drop, which on drop on empty area drops to the last workspace folder.
! context menu of empty area should be something like this.
! and also change this icons when there is no folder selected.
works fine, but "Open Folder Settings" does not bring up a picker, should it?


Question: this.centeredEditorLeftMarginRatio = 0.5; // Restore centered layout position and size <del> const centeredLayoutDataString = this.storageServise.get(EditorGroupsControl.CENTERED_EDITOR_LAYOUT_DATA_STORAGE_KEY, StorageScope.GLOBAL); </del> <ins> const centeredLayoutDataString = this.storageService.get(EditorGroupsControl.CENTERED_EDITOR_LAYOUT_DATA_STORAGE_KEY, StorageScope.GLOBAL); </ins> if (centeredLayoutDataString) { const centeredLayout = <CenteredEditorLayoutData>JSON.parse(centeredLayoutDataString); this.centeredEditorLeftMarginRatio = centeredLayout.leftMarginRatio; <del> this.centeredEditorPreferedSize = centeredLayout.size; </del> <ins> this.centeredEditorPreferredSize = centeredLayout.size; </ins> } } }

<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.21 OS Version: Mac 10.12.16 Steps to Reproduce: editor mode should be in vertical mode on centered layout with one tab, you should see it is centered split editor mode to horizontal mode centered layout will no longer work until you switch back to vertical mode <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.458 --- <!-- score: 0.451 --- <!-- score: 0.451 --<!-- potentialduplicatescomment --
Thanks for figuring this out. I spent a while trying to figure out what the problem was. Thank to you, I changed splitting to vertical mode and now centered layout works. I can affirm that this big is happening to me too. I'm on a mac as well.
I would expect centered mode to work if I have horizontal layout and only one editor. I tried removing the check to simply also enable it for horizontal layout but somehow the layout gets broken in that case. I plan to fix this in the following week but just to let you know that a PR is more than welcome :)
I just let you know that money is more than welcome :smile: Just kidding... I run on fun xD you shall have your PR :) it has the number . The problem was, that the available size was calculated by using which holds the height and not the width of the editor when in horizontal mode. You have to play around with it a little... it seemed to work but I did no deep testing or anything As bonus I fixed two typos (one of whom I made myself :smile:)
thanks a lot for your PR, I just merged it in I tried it out and it works nicely, also thanks for fixing typos. For money feel free to apply for our internshipts if you are a student or to our open positions :)
:smile: I'll finish university in 4 month... so... I might very well do that xD


Question: testExecutionService = new TestExecutionService(); instantiationService.stub(INotebookExecutionStateService, testExecutionService); <del> const chatProviders = instantiationService.get<IInlineChatService>(IInlineChatService); disposables.add(chatProviders.addProvider({} as IInlineChatSessionProvider)); </del> <ins> const agentData = { extensionId: nullExtensionDescription.identifier, extensionDisplayName: '', extensionPublisherId: '', name: 'testEditorAgent', isDefault: true, locations: [ChatAgentLocation.Editor], metadata: {}, slashCommands: [] }; const chatAgentService = new class extends mock<IChatAgentService>() { override getAgents(): IChatAgentData[] { return [{ id: 'testEditorAgent', ...agentData }]; } override onDidChangeAgents: Event<IChatAgent | undefined> = Event.None; }; instantiationService.stub(IChatAgentService, chatAgentService); </ins> markerService = new class extends mock<ITestMarkerService>() { override markers: ResourceMap<IMarkerData[]> = new ResourceMap();

There are some parts in notebook land that depend on . This service and its provider are deprecated and should be removed. As of today the following dependencies must be cleaned up first: , , The should be used instead, it will allow you to know if a agent per location exists or not


Question: import { toDisposable, DisposableStore, dispose } from 'vs/base/common/lifecycle'; import { StableEditorScrollState } from 'vs/editor/browser/core/editorState'; import { ICodeEditor, MouseTargetType, IViewZoneChangeAccessor, IActiveCodeEditor } from 'vs/editor/browser/editorBrowser'; <del> import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; </del> <ins> import { registerEditorContribution, EditorCommand, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; </ins> import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { IModelDecorationsChangeAccessor } from 'vs/editor/common/model'; import { CodeLensProviderRegistry, CodeLens } from 'vs/editor/common/modes';

It would be nice to invoke current line codelens actions without moving hands of from keyboard to mouse. It could be done via context ctrl+. where codelens actions are or from ctrl+p, or even new shortcut key which opens context menu which contains only codelens actions. They are sometimes available if extension implements them that way that they are to menus/context etc but this probably could be handled more generic way in vscode itself?
Hi! I just opened a PR with the ability to trigger codelenses with the keyboard. Hope you find this helpful as I do :D I appreciate any suggestions and comments from people coming to this issue


Question: return undefined; } for (const _key in obj) { <del> if (obj.hasOwnProperty(_key) && _key.toLowerCase() === key.toLowerCase()) { </del> <ins> if (Object.hasOwnProperty.call(obj, _key) && _key.toLowerCase() === key.toLowerCase()) { </ins> return obj[_key]; } }

Issue Type: <bBug</bOpen extension recommendations Click on one In the editor, click the ignore recommendation button Note that the extension is removed from the recommended extension list as expected Click on the undo button in the editor Note that the recommended extension is not placed back in the list. VS Code version: Code - Insiders 1.25.0-insider (, 2018-06-26T05:18:23.085Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ html-snippets0.2.1 jshint0.10.19 vscode-eslint1.4.12 tslint1.0.33 vscode-great-icons2.1.35 vscode-gutter-preview0.12.2 vscode-azureappservice0.8.1 vscode-cosmosdb0.7.2 azure-account0.4.1 csharp1.15.2 vs-keybindings0.2.0 team1.136.0 debugger-for-chrome4.7.0 addDocComments0.0.8 cordova-tools1.4.0 </details<!-- generated by issue reporter --! Testing:
Note: this only applies to non-workspace recommendations. Will look into
Closed with


Question: /** A regex that matches paths in the form ?c:foo c:foo, ~foo, .foo, ..foo, foobar */ export const winLocalLinkClause = '((' + winPathPrefix + '|(' + winExcludedPathCharactersClause + ')+)?(' + winPathSeparatorClause + '(' + winExcludedPathCharactersClause + ')+)+)'; <ins> // TODO: This should eventually move to the more structured terminalLinkParsing </ins> /** As xterm reads from DOM, space in that case is nonbreaking char ASCII code - 160, replacing space with nonBreakningSpace or space ASCII code - 32. */ export const lineAndColumnClause = [

Originally posted on without success. <!-- 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.69.2 OS Version: linux Steps to Reproduce: project has files like "Bar`1.cs" to represent generic types, as is done in the dotnet SDK build task contains "problemMatcher": { "base": "$msCompile" } When such a file has errors/warnings, I get this: is fine. But I cannot control-click on that filename to open it. The file's path is not underlined as normal - there is a clickable part before the bactick, and after. Someone from SO offered this guess: " probably backticks are not part of the regex that matches the filepath, or backticks are not in the w regex set"
I can reproduce this, it is correctly validating the link, but it then recognizes it as a folder: ! I guess nothing happens if Test doesn't exist? As for the fallback "word links", you can support this type of link if you remove backtick from word separators:
This falls apart when converting the link to a URI in !
And that happens because backticks aren't allowed in the local path regex:
Thanks


Question: } private replaceNotebookCellMetadata(uri: URI, index: number, cellMetadata: Record<string, any>, metadata?: vscode.WorkspaceEditEntryMetadata): void { <del> this._edits.push({ _type: FileEditType.Cell, metadata, uri, edit: { editType: CellEditType.PartialMetadata, index, metadata: cellMetadata } }); </del> <ins> this._edits.push({ _type: FileEditType.Cell, metadata, uri, edit: { editType: CellEditType.Metadata, index, metadata: cellMetadata } }); </ins> } // --- text

When updating cell metadata for a cell, users call which provides a function to alter the metadata of a cell. This uses defined in . When is called, the CellEditType is marked as , resulting in the metadata of the cell only being updated with the passed in data, rather than fully replaced. This makes it difficult to determine how to remove fields from a cell's metadata, a change needed for fixing . This can be worked around in this situation by setting the field to null. However, if a user calls , it appears that the functionality is a full replacement of initial metadata. There is a slight inconsistency here between the functionality of the two functions. Couple initial ideas: better document to reflect the behavior of . Add in a line stating that this is an iterative change, only altering the fields passed into this function - revise the functionality of either updateCell or updateNotebook metadata functions to align their behavior. This seems dangerous as it could likely break features leveraging this api. deprecate these functions, and rewrite two new ones with clearer functionality and documentation, based on updated needs from the notebook and jupyter teams
Analyzed all extensions using this API and most of them are already doing the right thing: clone the existing metadata, apply the change, and then call the API to update. However there are a few extensions didn't do so: there is one place where the metadata is not updated properly: PR . cc
<!-- 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!
what is the best way to verify this?
It's a bit complex I would love either or to help verify.


Question: } const COMMIT_FORMAT = '%H%n%aN%n%aE%n%at%n%ct%n%P%n%D%n%B'; <ins> const STASH_FORMAT = '%H%n%P%n%gd%n%gs'; </ins> export interface ICloneOptions { readonly parentPath: string;

a new file with the following content and commit it. the file to like as follows, save it, and create a stash with it the file to like as follows, and save it the "Git: View Stash..." command and pick the created stash diff in the stash should look as follows: <img width="921" alt="image" src=""


Question: - `npm.autoDetect` - Enable detecting scripts as tasks, the default is `on`. - `npm.runSilent` - Run npm script with the `--silent` option, the default is `false`. <del> - `npm.packageManager` - The package manager used to run the scripts: `npm` or `yarn`, the default is `npm`. </del> <ins> - `npm.packageManager` - The package manager used to run the scripts: `npm`, `yarn` or `pnpm`, the default is `npm`. </ins> - `npm.exclude` - Glob patterns for folders that should be excluded from automatic script detection. The pattern is matched against the **absolute path** of the package.json. For example, to exclude all test folders use '**/test/**'. - `npm.enableScriptExplorer` - Enable an explorer view for npm scripts. - `npm.scriptExplorerAction` - The default click action: `open` or `run`, the default is `open`.

<!-- 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. --The [NPM support for VS Code built-in extension][extension] (which automatically detects NPM scripts and provides a UI to run them in the sidebar) has an settting. Currently, this setting only supports the options or . This means it won't work with the [pnpm package manager][pnpm]. Adding a option would be really helpful to users who use pnpm rather than npm or yarn. Both [vscode-eslint][] and [typescript-tslint-plugin][] also already support using pnpm as the preferred Node package manager. I personally use pnpm because its reduced disk space/bandwidth footprint and its architecture both work better for me. I've experimented with just overwriting the value in with , and ignoring the warning from the linter. This seems to work (on macOS), so I'm guessing it might be as simple as adding to the array here: I just don't understand the extensions well enough to be sure that's correct / enough to properly add pnpm. [extension]: [pnpm]: [vscode-eslint]: [typescript-tslint-plugin]: [source]:


Question: dependencies: object-keys "~0.4.0" <del> xterm-addon-canvas@0.2.0-beta.15: version "0.2.0-beta.15" resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.2.0-beta.15.tgz#de863e46410b1de357b153abf1984227777760e4" integrity sha512-E1pNCDSVTINchwWLysZ9ZD/BPv1WLGV52xRHB00US1PHHELbhtvms+6dZ44WZEDXhtfpptRZ1VBx+QpvfJIuvw== xterm-addon-search@0.10.0-beta.3: version "0.10.0-beta.3" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.10.0-beta.3.tgz#5194434d86105637c71f6f20139a9d0b5c1a956a" integrity sha512-UeGm/ymnp7HUYJJtsP0D+bljOWbdk3MctcLJ+0jv8AmU6YlAzJFtouvYSQrD5SAMyht5CRsvjzFgqic9X02JYg== xterm-addon-serialize@0.8.0-beta.3: version "0.8.0-beta.3" resolved "https://registry.yarnpkg.com/xterm-addon-serialize/-/xterm-addon-serialize-0.8.0-beta.3.tgz#47ade3fedacbb75bd26e63cfe0120586623e0e4f" integrity sha512-gvfempZCYuAhLqN4O6fA2TuoavPjOxFKlh8hLcOzPackiLUhwKr1jQpDXcnq8VgqUiGgb+XNZpPEbI0Q7EhTgA== xterm-addon-unicode11@0.4.0-beta.3: version "0.4.0-beta.3" resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0-beta.3.tgz#f350184155fafd5ad0d6fbf31d13e6ca7dea1efa" integrity sha512-FryZAVwbUjKTmwXnm1trch/2XO60F5JsDvOkZhzobV1hm10sFLVuZpFyHXiUx7TFeeFsvNP+S77LAtWoeT5z+Q== xterm-addon-webgl@0.13.0-beta.32: version "0.13.0-beta.32" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.13.0-beta.32.tgz#ae7335f788ae611733e03f6ca38280ab7b86d212" integrity sha512-xOudNzYXaRh9QZ+IigXM5EB3bM8l3/F8F35EpJRYvvsylVxiB6Km8X8l7+nxlWt+uYdnHZs0ka2rvtL8kOP/uw== </del> <ins> xterm-addon-canvas@0.2.0-beta.17: version "0.2.0-beta.17" resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.2.0-beta.17.tgz#e84a86530b20bd3edcce16b4566f346cd186ab4d" integrity sha512-2ukPdCA92VTFYQRE56ylzvI3cfaQYDWd/Mc4jlEItI6sV/EA5RnUbbP+2sFIx0JlmHK6nVYXXNY2p6QRB7MRew== xterm-addon-search@0.10.0-beta.5: version "0.10.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.10.0-beta.5.tgz#a2cb16bda4ddf8783b80433155ad94f5822271f8" integrity sha512-kjog7cm1iEZ2XyQFVs3KAvoI2pKoX0cq2WWjL0FuXYXpKQ9vXmfrWSR7PiJ6zpTIRvr6UtaSGKhmZVHLNA79WA== xterm-addon-serialize@0.8.0-beta.5: version "0.8.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-addon-serialize/-/xterm-addon-serialize-0.8.0-beta.5.tgz#3d2f3be173f4f1c31ae7bf25179e8ecddf2b33b2" integrity sha512-rkSUaO1XBcy3ipScZMA5PrOKu/DfXo8XC/V7hZlhMiBNbZKlbk2rFb3X0FB1f07hw7oEkHLjuIJEY5Qtxfe9/w== xterm-addon-unicode11@0.4.0-beta.5: version "0.4.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0-beta.5.tgz#3900e66f10d2e506133b61d7421aab6878d32665" integrity sha512-+g+fuxAd/tkCEJ/jhdnebXKtdPrhsu4VKWNnB/3qM35GbuGQOasmYFYnKL+HYZMpbQ6YqeZcXTVg/wnCTttz0g== xterm-addon-webgl@0.13.0-beta.35: version "0.13.0-beta.35" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.13.0-beta.35.tgz#98b5dc102583120de25c7c6e0f35cd34ab6bef98" integrity sha512-powgeb3ifEZK7zWwLJuE8YRz/Z0UzDrrVA9NTx9mH7+vWxrGt9ZgroychoeCqZBvKMofiUM5vlf1oWdSmsMfzw== </ins> xterm-headless@5.0.0-beta.5: version "5.0.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.0.0-beta.5.tgz#e29b6c5081f31f887122b7263ba996b0c46b3c22" integrity sha512-CMQ1+prBNF92oBMeZzc2rfTcmOaCGfwwSaoPYNTjyziZT6mZsEg7amajYkb0YAnqJ29MFm4kPGZbU78/dX4k2A== <del> xterm@5.0.0-beta.32: version "5.0.0-beta.32" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.0.0-beta.32.tgz#62bb9902429c0055fd2fd85c9eecfbf1756ed31c" integrity sha512-OAM1GaBs/chK63Cr86XbVhfVCLLXLpNxxFrv3RK9xoyb9dwiY3gaMxK9jeGzTnrbGLWJb+k5nxaC0rx2YsHvUA== </del> <ins> xterm@5.0.0-beta.35: version "5.0.0-beta.35" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.0.0-beta.35.tgz#3bbf5780c98aaaa6476e7590dff1d8f5014fce9d" integrity sha512-tzJTel1E/FmB0VQDb44xApVB+ln+BifIbHD4V9x9Z3D9m1cMmPHy8J8efdILkn1TxXGlCl7VC35nG122Qq5exw== </ins> y18n@^3.2.1: version "3.2.2"

Repro: folder test task, wait to finish another terminal test task again <img width="1344" alt="Screen Shot 2022-08-07 at 11 40 14 am" src="https://user-"
In repo, ctrl+shift+b is focusing the terminal: !
Reproduces on webgl only
Guessing it's related to canvas recreation:
Yep: !


Question: public async run(accessor: ServicesAccessor | undefined, editor: ICodeEditor): Promise<void> { const controller = InlineCompletionsController.get(editor); <del> controller?.model.get()?.acceptNextWord(controller.editor); </del> <ins> await controller?.model.get()?.acceptNextWord(controller.editor); </ins> } }

One desired behavior of writing a custom is that when the user accepts a given suggestion, the provider is immediately triggered again for another suggestion. We need to track when users accept (or reject) suggestions so that we can measure improvements that we make. Without using the experimental API, the best way to track if a completion is accepted is to provide a value for the field in . When supplying a command, the retriggering behavior is disabled [1]. As a workaround, I tried to indirectly trigger an inline completion via the command , however, it does not work (not sure why, this does work with my unit tests but not when I try to call it from a command I supply via ). [1] I believe this is the code block that retriggers automatically, one can see that the retrigger only happens if the command is the default command:
Note is related.
Note that [1] points to the autocomplete source code, not the inline suggestion feature. I'm not aware of any disablements.
Ok, that's incorrect -- however, adding a 'command' to disables the automatic retrigger.
Place the cursor after and press enter. Then accept. Notice that is not suggested.
That monaco repro / editor is really cool
Thanks! The best thing is that you can use the "Monaco Editor Playground" launch config in the VS Code repo to debug the playground example :)
<!-- 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!


Question: keybinding: [ // On mac, require that the cursor is at the top of the input, to avoid stealing cmd+up to move the cursor to the top { <del> when: CONTEXT_CHAT_INPUT_CURSOR_AT_TOP, </del> <ins> when: ContextKeyExpr.and(CONTEXT_CHAT_INPUT_CURSOR_AT_TOP, CONTEXT_IN_QUICK_CHAT.negate()), </ins> primary: KeyMod.CtrlCmd | KeyCode.UpArrow, weight: KeybindingWeight.EditorContrib, }, // On win/linux, ctrl+up can always focus the chat list { <del> when: ContextKeyExpr.or(IsWindowsContext, IsLinuxContext), </del> <ins> when: ContextKeyExpr.and(ContextKeyExpr.or(IsWindowsContext, IsLinuxContext), CONTEXT_IN_QUICK_CHAT.negate()), </ins> primary: KeyMod.CtrlCmd | KeyCode.UpArrow, weight: KeybindingWeight.EditorContrib, <ins> }, { when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_QUICK_CHAT), primary: KeyMod.CtrlCmd | KeyCode.DownArrow, weight: KeybindingWeight.WorkbenchContrib, </ins> } ] });

uses quick chat and has found that going between the input and the response is cumbersome because of our underlying list structure. This is in particular an issue because we now have many hyperlinked tab stops. ! We should provide a way to go between the input and the focused response. AFAICT, there is not a way to do this. Pressing seems to focus the input (unexpectedly), but there's no way to get back to the response. Thoughts?
Makes sense. Probably just need to handle the keybindings better
these probably just need logic for QC
Tyler figured out that there is a way to do this, but it's in the reverse direction from what one might expect based on tab order. Use to focus the input and to focus the last response.
Talked to JooYoung and it's fine to have these reversed, we'll want to be sure that using doesn't still focus the input box.
working afaict - and for response -input and vice versa, tab works fine as well


Question: } private updateInputBox(): void { <del> if (typeof this.repository.provider.commitTemplate === 'undefined') { </del> <ins> if (typeof this.repository.provider.commitTemplate === 'undefined' || this.inputBox.value) { </ins> return; }

<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issue to prefill these. --- VSCode Version: OS Version: Window 10 Steps to Reproduce: gif: !
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.562 --- <!-- score: 0.491 --<!-- potentialduplicatescomment --


Question: event.stopPropagation(); event.preventDefault(); <del> const actions: IAction[] = []; actions.push(<IAction>{ id: `${viewDescriptor.id}.removeView`, label: localize('hideView', "Hide"), enabled: viewDescriptor.canToggleVisibility, run: () => this.toggleViewVisibility(viewDescriptor.id) }); const otherActions = this.getContextMenuActions(); if (otherActions.length) { actions.push(...[new Separator(), ...otherActions]); } </del> <ins> const actions: IAction[] = this.getContextMenuActions(viewDescriptor); </ins> let anchor: { x: number, y: number } = { x: event.posx, y: event.posy }; this.contextMenuService.showContextMenu({

insiders, install remote SSH extension the Remote view container all the views via context menu menu on the title -the views are not there and they can not be brought back -the views are back -I would expect the hidden state to be preserved fyi !
Assigning to as remote viewlet has special treatment.
Original decision was that none of the views in the filter-view should be hide-able. Looks like I missed a spot!


Question: "tab.inactiveBackground": "#414339", "tab.border": "#1e1f1c", "tab.inactiveForeground": "#ccccc7", // needs to be bright so it's readable when another editor group is focused <del> "widget.shadow": "#1e1f1c", </del> <ins> "widget.shadow": "#000000", </ins> "progressBar.background": "#75715E", "badge.background": "#75715E", "badge.foreground": "#f8f8f2",

Due to how colors are blending together. Notice the color of the input and the selection of quick open and how the black background blends into the viewlet, so the input looks misaligned. <img width="1035" alt="screen shot 2017-06-27 at 15 23 22" src="https://user-"
Hello, I'd like to help with this! UPDATE: I believe I've fixed the issue by changing the "" property in the monokai theme from "" to "". Before the change: ! After the change: ! Shall I submit a pull request? Thank you!
Yes, a PR would be great!


Question: } }); <ins> registerAction2(class extends Action2 { constructor() { super( { id: 'notebook.diff.action.previous', title: localize('notebook.diff.action.previous.title', "Show Previous Change"), icon: previousChangeIcon, f1: false, keybinding: { primary: KeyMod.Shift | KeyMod.Alt | KeyCode.F3, weight: KeybindingWeight.WorkbenchContrib }, menu: { id: MenuId.EditorTitle, group: 'navigation', when: ActiveEditorContext.isEqualTo(NotebookTextDiffEditor.ID) } } ); } run(accessor: ServicesAccessor) { const editorService: IEditorService = accessor.get(IEditorService); if (editorService.activeEditorPane?.getId() !== NOTEBOOK_DIFF_EDITOR_ID) { return; } const editor = editorService.activeEditorPane.getControl() as INotebookTextDiffEditor | undefined; editor?.previousChange(); } }); registerAction2(class extends Action2 { constructor() { super( { id: 'notebook.diff.action.next', title: localize('notebook.diff.action.next.title', "Show Next Change"), icon: nextChangeIcon, f1: false, keybinding: { primary: KeyMod.Alt | KeyCode.F3, weight: KeybindingWeight.WorkbenchContrib }, menu: { id: MenuId.EditorTitle, group: 'navigation', when: ActiveEditorContext.isEqualTo(NotebookTextDiffEditor.ID) } } ); } run(accessor: ServicesAccessor) { const editorService: IEditorService = accessor.get(IEditorService); if (editorService.activeEditorPane?.getId() !== NOTEBOOK_DIFF_EDITOR_ID) { return; } const editor = editorService.activeEditorPane.getControl() as INotebookTextDiffEditor | undefined; editor?.nextChange(); } }); </ins> Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).registerConfiguration({ id: 'notebook', order: 100,

Testing Ideally there would be commands to navigate between changes. And they might deserve an action in the diff title bar. Same as the editor diff experience. !
Why is for these commands? I would expect them to be available from the command palette, since in a regular text editor Show Previous Change and Show Next Change both appear.


Question: } }); <ins> registerAction2(class extends Action2 { constructor() { super( { id: 'notebook.diff.action.previous', title: localize('notebook.diff.action.previous.title', "Show Previous Change"), icon: previousChangeIcon, f1: false, keybinding: { primary: KeyMod.Shift | KeyMod.Alt | KeyCode.F3, weight: KeybindingWeight.WorkbenchContrib }, menu: { id: MenuId.EditorTitle, group: 'navigation', when: ActiveEditorContext.isEqualTo(NotebookTextDiffEditor.ID) } } ); } run(accessor: ServicesAccessor) { const editorService: IEditorService = accessor.get(IEditorService); if (editorService.activeEditorPane?.getId() !== NOTEBOOK_DIFF_EDITOR_ID) { return; } const editor = editorService.activeEditorPane.getControl() as INotebookTextDiffEditor | undefined; editor?.previousChange(); } }); registerAction2(class extends Action2 { constructor() { super( { id: 'notebook.diff.action.next', title: localize('notebook.diff.action.next.title', "Show Next Change"), icon: nextChangeIcon, f1: false, keybinding: { primary: KeyMod.Alt | KeyCode.F3, weight: KeybindingWeight.WorkbenchContrib }, menu: { id: MenuId.EditorTitle, group: 'navigation', when: ActiveEditorContext.isEqualTo(NotebookTextDiffEditor.ID) } } ); } run(accessor: ServicesAccessor) { const editorService: IEditorService = accessor.get(IEditorService); if (editorService.activeEditorPane?.getId() !== NOTEBOOK_DIFF_EDITOR_ID) { return; } const editor = editorService.activeEditorPane.getControl() as INotebookTextDiffEditor | undefined; editor?.nextChange(); } }); </ins> Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).registerConfiguration({ id: 'notebook', order: 100,

Testing Notice that the scroll range is below the decorations, even though they're on screen <img width="717" alt="image" src="https://user-"Meanwhile if I scroll to where they're shown, they aren't in viewport <img width="713" alt="image" src="https://user-"This was on the following gif: <img width="401" alt="image" src="https://user-"


Question: @ITelemetryService private readonly telemetryService: ITelemetryService, @IProductService private readonly productService: IProductService, @ITerminalService private readonly terminalService: ITerminalService, <del> @IStorageService private readonly _storageService: IStorageService </del> <ins> @IStorageService private readonly _storageService: IStorageService, @IContextMenuService private readonly contextMenuService: IContextMenuService </ins> ) { super(); this.toDispose.add(_instance.onDidFocus(() => {

I've verified that I can see the terminal hint in insiders. Does this also need to be tested in stable?
Yes this needs a stable build as it checks quality. You could verify out of sources by setting quality to stable as well


Question: @ITelemetryService private readonly telemetryService: ITelemetryService, @IProductService private readonly productService: IProductService, @ITerminalService private readonly terminalService: ITerminalService, <del> @IStorageService private readonly _storageService: IStorageService </del> <ins> @IStorageService private readonly _storageService: IStorageService, @IContextMenuService private readonly contextMenuService: IContextMenuService </ins> ) { super(); this.toDispose.add(_instance.onDidFocus(() => {

Can this support right click to toggle the setting to hidden? !
right click shows our terminal context menu, perhaps we should just put it in there rather than adding a new one? !
this isn't a feature the others offer, thus not a bug IMO


Question: overviewRulerLanes = 63, parameterHints = 64, peekWidgetDefaultFocus = 65, <del> quickSuggestions = 66, quickSuggestionsDelay = 67, readOnly = 68, renderControlCharacters = 69, renderIndentGuides = 70, renderFinalNewline = 71, renderLineHighlight = 72, renderValidationDecorations = 73, renderWhitespace = 74, revealHorizontalRightPadding = 75, roundedSelection = 76, rulers = 77, scrollbar = 78, scrollBeyondLastColumn = 79, scrollBeyondLastLine = 80, selectionClipboard = 81, selectionHighlight = 82, selectOnLineNumbers = 83, semanticHighlighting = 84, showFoldingControls = 85, showUnused = 86, snippetSuggestions = 87, smoothScrolling = 88, stopRenderingLineAfter = 89, suggest = 90, suggestFontSize = 91, suggestLineHeight = 92, suggestOnTriggerCharacters = 93, suggestSelection = 94, tabCompletion = 95, useTabStops = 96, wordSeparators = 97, wordWrap = 98, wordWrapBreakAfterCharacters = 99, wordWrapBreakBeforeCharacters = 100, wordWrapColumn = 101, wordWrapMinified = 102, wrappingIndent = 103, wrappingStrategy = 104, editorClassName = 105, pixelRatio = 106, tabFocusMode = 107, layoutInfo = 108, wrappingInfo = 109 </del> <ins> definitionLinkOpensInPeek = 66, quickSuggestions = 67, quickSuggestionsDelay = 68, readOnly = 69, renderControlCharacters = 70, renderIndentGuides = 71, renderFinalNewline = 72, renderLineHighlight = 73, renderValidationDecorations = 74, renderWhitespace = 75, revealHorizontalRightPadding = 76, roundedSelection = 77, rulers = 78, scrollbar = 79, scrollBeyondLastColumn = 80, scrollBeyondLastLine = 81, selectionClipboard = 82, selectionHighlight = 83, selectOnLineNumbers = 84, semanticHighlighting = 85, showFoldingControls = 86, showUnused = 87, snippetSuggestions = 88, smoothScrolling = 89, stopRenderingLineAfter = 90, suggest = 91, suggestFontSize = 92, suggestLineHeight = 93, suggestOnTriggerCharacters = 94, suggestSelection = 95, tabCompletion = 96, useTabStops = 97, wordSeparators = 98, wordWrap = 99, wordWrapBreakAfterCharacters = 100, wordWrapBreakBeforeCharacters = 101, wordWrapColumn = 102, wordWrapMinified = 103, wrappingIndent = 104, wrappingStrategy = 105, editorClassName = 106, pixelRatio = 107, tabFocusMode = 108, layoutInfo = 109, wrappingInfo = 110 </ins> } /**

<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --When we use to jump to definition, would open the definition in a new window, which is inconvenient for me. It would be better if we can choose where to open definition, like in . !
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.492 --- <!-- score: 0.467 --<!-- potentialduplicatescomment --
Nice suggestion. If you agree with this, I'll create a setting so one can choose if 'ctrl+click' always opens the peek view.
Normally, ctrl+click runs and cmd+ctrl+click opens . With this setting enabled, they both run . I don't think that's expected. Possibly change to ?
you can reopen verification-found issues
Uhm, I'll take a look on that. Thanks for your feedback!
Please file a bug and don't reopen feature requests
I created