Question: StartupNotify=false StartupWMClass=@@NAME_SHORT@@ Categories=Utility;TextEditor;Development;IDE; <del> MimeType=text/plain;inode/directory; </del> <ins> MimeType=text/plain;inode/directory;application/x-@@NAME@@-workspace; </ins> Actions=new-empty-window; Keywords=vscode;

A Visual Studio Code workspace file is currently recognised in Linux as a normal plain text file. This is because there isn't a MIME type for this file. Applications can provide additional MIME types as described here: Not having a MIME type has a couple of issues, for example the files are shown as plain text files in the GUI, which makes it hard to distinguish source code files from the workspace file. This slows down navigating to a workspace and opening it. Find the workspace in the following screenshot ! It's currently impossible to theme such a file because it's not seen as a different MIME type:
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.461 --<!-- potentialduplicatescomment --
This also means that you can't make double clicking the workspace from a file browser open it in vscode, unless you're OK with all text files opening in vscode, which is probably not what most folks want.
This bug has been fixed in to the latest release of ! you can help us out by confirming things are working as expected in the latest Insiders release. If things look good, please leave a comment with the text to let us know. If not, please ensure you're on version of Insiders (today's or later - you can use in the command pallete to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Hi can you verify this issue? Check out the previous comment.
I tried to verify this but am not sure how to do this myself. I've not used desktop linux extensively; I tried reinstalling Insiders from the on Lubuntu to see if it associated files with VS Code, but that didn't happen.
Verified by installing insiders from on Ubuntu and was able to see mimetype and set a custom icon ! upon uninstalling it was removed.


Question: import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { Emitter, Event } from 'vs/base/common/event'; import { DisposableStore } from 'vs/base/common/lifecycle'; <ins> import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; </ins> const CTX_QUICK_CHAT_IN_PROGRESS = new RawContextKey<boolean>('inlineChat.quickChatInProgress', false);

empty profile open terminal, run or any other command that prints something press to clear the terminal :bug: the keyboard system is waiting for chord to be completed


Question: quickSuggestions: false, renderWhitespace: 'none', dropIntoEditor: { enabled: true }, <del> readOnly: true </del> <ins> readOnly: true, fontFamily: 'var(--monaco-monospace-font)' </ins> }; this._editorWidget = this._register(this._instantiationService.createInstance(CodeEditorWidget, this._editorContainer, editorOptions, codeEditorWidgetOptions)); } show(provider: IAccessibleContentProvider): void { const delegate: IContextViewDelegate = { <del> getAnchor: () => this._editorContainer, </del> <ins> getAnchor: () => { return { x: (window.innerWidth / 2) - (DIMENSION_DEFAULT.WIDTH / 2), y: (window.innerHeight / 2) - (this.editorWidget.getContentHeight() / 2) }; }, </ins> render: (container) => { return this._render(provider, container); },

When resizing the windows while the accessible help menu is visible, the help menu slides diagonally: !


Question: quickSuggestions: false, renderWhitespace: 'none', dropIntoEditor: { enabled: true }, <del> readOnly: true </del> <ins> readOnly: true, fontFamily: 'var(--monaco-monospace-font)' </ins> }; this._editorWidget = this._register(this._instantiationService.createInstance(CodeEditorWidget, this._editorContainer, editorOptions, codeEditorWidgetOptions)); } show(provider: IAccessibleContentProvider): void { const delegate: IContextViewDelegate = { <del> getAnchor: () => this._editorContainer, </del> <ins> getAnchor: () => { return { x: (window.innerWidth / 2) - (DIMENSION_DEFAULT.WIDTH / 2), y: (window.innerHeight / 2) - (this.editorWidget.getContentHeight() / 2) }; }, </ins> render: (container) => { return this._render(provider, container); },

Repro: Alt+F1 ! If should be in the center as that's the most obvious location Version: 1.80.0-insider (user setup) Commit: Date: 2023-06-28T08:01:04.380Z Electron: 22.3.14 ElectronBuildId: Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.
Putting it here makes the most sense to me because that's where we put other components - like the quick pick. I want to get feedback from low vision users
That's fine, but if you're styling like the command palette we should position it in a similar way ! So below the title bar and not quite and maybe a little less wide
Re , we should also size the height similar to quick pick
But shouldn't the height be determined by the contents?
yes, but have a similar height cap to the quick pick
We should also use the same font as the quick pick
I think you've convinced me - this should be in the center.
Personally I preferred the top position, I'd just render it as the quick pick: Same position and same style. VS Code does not have many vertically centered dialogs. If you want to make it vertically centered, I'd suggest to align it with other vertically centered dialogs, like the trust dialog (notice the background shadow): ! ! Generally, I think, if there is no particular reason to be different, we should try to have a consistent UI throughout the entire product. I'm still in favor of the top position, as the workspace trust dialog is the only vertically centered dialog I know of and it is strongly modal (you have to click one of the buttons to make it disappear). FYI
Fading the background like the trust dialog is good imo, I like centered as it's a very special mode and it's modal as in clicking outside will always dismiss it, unlike the quick pick which may not dismiss when clicking outside. In the end the visual appearance isn't that important really, I just want it to be very obvious when the accessible view is up.
I agree that we should try to align with existing design. My personal preference is to have it positioned like the quick pick.


Question: quickSuggestions: false, renderWhitespace: 'none', dropIntoEditor: { enabled: true }, <del> readOnly: true </del> <ins> readOnly: true, fontFamily: 'var(--monaco-monospace-font)' </ins> }; this._editorWidget = this._register(this._instantiationService.createInstance(CodeEditorWidget, this._editorContainer, editorOptions, codeEditorWidgetOptions)); } show(provider: IAccessibleContentProvider): void { const delegate: IContextViewDelegate = { <del> getAnchor: () => this._editorContainer, </del> <ins> getAnchor: () => { return { x: (window.innerWidth / 2) - (DIMENSION_DEFAULT.WIDTH / 2), y: (window.innerHeight / 2) - (this.editorWidget.getContentHeight() / 2) }; }, </ins> render: (container) => { return this._render(provider, container); },

But in the end, it is not super important as pointed out.
One issue with doing it as the quick pick is it would look wrong being so narrow, and making is narrow would make it less accessible, say if a low vision user was using it.
Not sure it needs to be as narrow as quick pick. I just think the positioning of the quick pick is fitting. So the top and center. It could be wider or longer.
Now that we have the focus border, it is more obvious, so fine to be at the top IMO.
This is still not fixed imo, it should follow quick pick and look like this (native title bar): ! Not this (custom title bar): !
Verified off main :+1:


Question: .conflict-zone-root { background-color: var(--vscode-mergeEditor-change-background); <del> border: 1px dashed var(--vscode-mergeEditor-conflict-unhandledUnfocused-border); </del> <ins> border: 1px solid var(--vscode-mergeEditor-conflict-unhandledUnfocused-border); </ins> height: 90%; display: flex; align-items: center;

! The highlighting is important to understand which conflict in the bottom view corresponds to which conflicts in result. I think the change of the color of the dashed border is difficult to notice.


Question: appendWholeWordsLabel: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand), appendRegexLabel: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand), validation: (value: string): InputBoxMessage | null => { <del> if (value.length === 0) { return null; } if (!this._findInput.getRegex()) { </del> <ins> if (value.length === 0 || !this._findInput.getRegex()) { </ins> return null; } try { <del> /* tslint:disable:no-unused-expression */ </del> <ins> /* tslint:disable-next-line:no-unused-expression */ </ins> new RegExp(value); <del> /* tslint:enable:no-unused-expression */ </del> return null; } catch (e) { return { content: e.message };

We can add the same regex validator for the terminal find widget input box if the underling regex engine is JavaScript regex. Close this one if we are using another regex engine somehow in
So in the terminal widget show things like this and reject the search? <img width="238" alt="screen shot 2018-10-11 at 11 58 06 am" src="https://user-"
I would like to try and work on this feature. Could someone tell me where to start working on this feature?
the terminal find widget code is here: It extends the SimpleFindWidget: Not sure where the validator is but I'd look around the and files.


Question: const isXHRResponse = (error: any): error is XHRResponse => typeof error?.status === 'number'; const request = async (uri: string, etag?: string): Promise<string> => { <del> const headers: Headers = { 'Accept-Encoding': 'gzip, deflate' }; </del> <ins> const headers: Headers = { 'Accept-Encoding': 'gzip, deflate', 'User-Agent': `${env.appName} (${env.appHost})` }; </ins> if (etag) { headers['If-None-Match'] = etag; }

<!-- 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.79.2 OS Version: Darwin x64 22.5.0 Steps to Reproduce: a webserver at serving a single schema at containing (the precise contents don't really matter) a file , and paste in: the cursor between the quotes just after the trailing slash , and look at the webserver logs, observing no user agent was sent
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.80.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
I suggest to verify this in code:


Question: /* padding must be on action-label because it has the bottom-border, because that's where the .checked class is */ } <ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item.focused { outline-offset: -1.5px; } </ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item .action-label { text-transform: none; font-size: 13px; <del> padding-bottom: 7px; </del> <ins> padding-bottom: 6.5px; </ins> padding-top: 7px; padding-left: 8px; padding-right: 8px; } <ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item .action-label .dropdown-icon { padding-top: 2px; } </ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item .action-label:not(.checked):not(:focus) { /* Add an extra pixel due to it not getting the outline */ padding-bottom: 8px;

Issue Type: <bBug</bWith the latest update, active and inactive menu in settings UI does not look any different from each other VS Code version: Code 1.66.0 (, 2022-03-30T05:50:14.623Z) OS version: WindowsNT x64 10.0. Restricted Mode: No Remote OS version: Linux x64 3.10.0-1127.10.1.el7.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (42)</summaryExtensionVersion ------ LogFileHighlighter2.15.0 remotehub0.28.0 better-cpp-syntax1.15.13 blockman1.5.7 jupyter-keymap1.0.0 remote-containers0.231.1 remote-ssh0.78.0 remote-ssh-edit0.78.0 remote-wsl0.66.0 remote-repositories0.4.0 material-icon-theme4.15.0 rewrap1.16.3 vscode-icons11.10.0 vscode-todo-highlight1.0.5 path-intellisense2.8.0 vscode-clock0.0.1 gitlens12.0.5 systemverilog0.12.1 prettier-vscode9.5.0 seito-openfile1.8.8 html-preview-vscode0.2.5 jira-plugin0.22.2 gitlab-workflow3.41.2 gc-excelviewer4.2.54 beautify1.5.0 path-autocomplete1.19.1 svg1.4.17 vscode-jira0.6.0 restructuredtext183.0.0 python2022.4.0 vscode-pylance2022.3.4 jupyter2022.3. jupyter-renderers1.0.6 cpptools1.9.7 veriloghdl1.5.3 subtle-brackets3.0.0 LiveServer5.7.5 code-spell-checker2.1.11 vscode-input-sequence0.2.0 simple-rst1.5.2 vscodeintellicode1.2.17 better-align1.1.6 (2 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
/gifPlease
! ! ! !


Question: /* padding must be on action-label because it has the bottom-border, because that's where the .checked class is */ } <ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item.focused { outline-offset: -1.5px; } </ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item .action-label { text-transform: none; font-size: 13px; <del> padding-bottom: 7px; </del> <ins> padding-bottom: 6.5px; </ins> padding-top: 7px; padding-left: 8px; padding-right: 8px; } <ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item .action-label .dropdown-icon { padding-top: 2px; } </ins> .settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget > .monaco-action-bar .action-item .action-label:not(.checked):not(:focus) { /* Add an extra pixel due to it not getting the outline */ padding-bottom: 8px;

By "active and inactive menu" I assume you are referring to the tabs labelled "User", "Remote", "Workspace" etc. Which color theme are you using? Do you also see the issue when using the default themes (Light+ and Dark+)?
Yeah, I am referring to "User", "Remote", "Workspace" etc. I am using Night Owl Light Theme
Does this problem occur when you don't have a multi-root workspace open?
The issue is seen only with a multi-root workspace. Is it a known issue?


Question: linuxExecutableName: product.applicationName, winIcon: 'resources/win32/code.ico', token: process.env['GITHUB_TOKEN'], <del> repo: product.electronRepository || undefined </del> <ins> repo: product.electronRepository || undefined, validateChecksum: true, checksumFile: path.join(root, 'build', 'checksums', 'electron.txt'), </ins> }; function getElectron(arch) { return () => {

Today when running out of sources and/or building, we get some components from online resources such as GitHub or our Marketplace. We should add SHA256 checksum verification to these: [x] [x] built-in extensions [x] electron
Adding the foundation for this for and extensions in


Question: import { findExecutable, getShellIntegrationInjection, getWindowsBuildNumber, IShellIntegrationConfigInjection } from 'vs/platform/terminal/node/terminalEnvironment'; import { WindowsShellHelper } from 'vs/platform/terminal/node/windowsShellHelper'; import { IPty, IPtyForkOptions, IWindowsPtyForkOptions, spawn } from 'node-pty'; <ins> import { chunkInput } from 'vs/platform/terminal/common/terminalProcess'; </ins> const enum ShutdownConstants { /**

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.77.3 OS Version: Ubuntu 20.04.6 Steps to Reproduce: VSCode on an Ubuntu computer (or on Windows using WSL) the built-in terminal the command and paste the following 39-character string into nano: : nano shows the error message "Unknown Sequence". Can no longer interact with the terminal, need to kill it and open a new one More details: nano version 4.8 This does not happen in nano using an external terminal. Only in VSCode's built-in terminal This does not happen for any other length of string, even other multiples of 39 This does not happen in other CLI text editors, such as vim
I can confirm this issue on Windows using WSL.
It happens with other 39 long strings as well. It also happens when not using WSL. Copying more characters solves the problem. For us it also happens with multiples of 39 (e.g. 156 characters, line breaks included)
When trace logs are enabled this is the exact sequence we send: Compared to 1 less : Note that the 200/201 wrapped around it is bracketed paste mode (which I just a way to disable so that may help ). So this seems to be either a problem with one of nano, conpty or node-pty.
I also just ran into this. I'm on Windows 10, using Remote - SSH plugin to connect to an Ubuntu 22.04 server. Right-click to paste in Nano, terminal locks up, have to Kill it.


Question: import { findExecutable, getShellIntegrationInjection, getWindowsBuildNumber, IShellIntegrationConfigInjection } from 'vs/platform/terminal/node/terminalEnvironment'; import { WindowsShellHelper } from 'vs/platform/terminal/node/windowsShellHelper'; import { IPty, IPtyForkOptions, IWindowsPtyForkOptions, spawn } from 'node-pty'; <ins> import { chunkInput } from 'vs/platform/terminal/common/terminalProcess'; </ins> const enum ShutdownConstants { /**

Add/remove one character from the string and try again, works.
We closed this issue because we in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider. If you wonder what we are up to, please see our and . Thanks for your understanding, and happy coding!
i opened a bug on gnu nano's bugtracker:
I think I found a workaround, but haven't tested it: vscode , nano doesn't deal well with across writes and it is apparently difficult to fix in nano. vscode could split writes differently, using this algorithm that keeps escape sequences at the beginning and end unsplit (like bracketed pastes):
great info, we should definitely do this . I'll probably tweak your proposal a little to try catch escape sequences in the middle too.
I don't expect input sizes to be 50 bytes except when pasting, when pasting there should only ever be an escape sequence at the beginning and end, never in the middle (terminal apps are unlikely to deal well with pasting a string containing escape sequences anyway).
unless I missed something in the issue you linked, it's not that they need to be on the boundaries of the text but need to be included entirely in that string and not clipped?
yes, escape sequences need to be contained entirely in one write syscall. basically I am saying you shouldn't have escape sequences in the middle of a long input, so you don't need to look for them to avoid splitting them, they should only occur towards the ends of a long input or in a shorter input.
Nano's workaround was released in Nano 8.0:


Question: }); }); <ins> // --- document highlights test('"vscode.executeDocumentHighlights" API has stopped returning DocumentHighlight[]#200056', async function () { disposables.push(extHost.registerDocumentHighlightProvider(nullExtensionDescription, defaultSelector, <vscode.DocumentHighlightProvider>{ provideDocumentHighlights() { return [ new types.DocumentHighlight(new types.Range(0, 17, 0, 25), types.DocumentHighlightKind.Read) ]; } })); await rpcProtocol.sync(); return commands.executeCommand<vscode.DocumentHighlight[]>('vscode.executeDocumentHighlights', model.uri, new types.Position(0, 0)).then(values => { assert.ok(Array.isArray(values)); assert.strictEqual(values.length, 1); const [first] = values; assert.strictEqual(first.range.start.line, 0); assert.strictEqual(first.range.start.character, 17); assert.strictEqual(first.range.end.line, 0); assert.strictEqual(first.range.end.character, 25); }); }); </ins> // --- outline test('Outline, back and forth', function () {

Type: <bBug</bI have an extension that has been making use of the executeCommand API for "vscode.executeDocumentHighlights" to get the for different positions in a file. Essentially calling something like below: After a recent VsCode update, the API is no longer returning any values and simply returns . I'm not sure the best way to provide a reproduce for this. I originally encountered the problem with a custom extension/language server. However the problem also appears to occur when calling the same command on a simple typescript file so I believe it's a general issue rather than any thing specific to my environment. I've had a quick search in the VsCode sources and I have a feeling this commit might be responsible: I think the problem is due to now returning instead of . When it gets to the ApiCommand layer I think the function fails and returns as the function has been given a instead of VS Code version: Code 1.84.2 (, 2023-11-09T10:51:52.184Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (30)</summaryExtensionVersion ------ vscode-markdownlint0.53.0 vscode-eslint2.4.2 mfcobol1.0.53 mfenterprise1.0.53 vscode-language-pack-ja1.84. csdevkit1.0.14 csharp2.12.19 vscode-dotnet-runtime2.0.0 vscodeintellicode-csharp0.1.26 python2023.20.0 vscode-pylance2023.11.10 jupyter2023.10.


Question: }); }); <ins> // --- document highlights test('"vscode.executeDocumentHighlights" API has stopped returning DocumentHighlight[]#200056', async function () { disposables.push(extHost.registerDocumentHighlightProvider(nullExtensionDescription, defaultSelector, <vscode.DocumentHighlightProvider>{ provideDocumentHighlights() { return [ new types.DocumentHighlight(new types.Range(0, 17, 0, 25), types.DocumentHighlightKind.Read) ]; } })); await rpcProtocol.sync(); return commands.executeCommand<vscode.DocumentHighlight[]>('vscode.executeDocumentHighlights', model.uri, new types.Position(0, 0)).then(values => { assert.ok(Array.isArray(values)); assert.strictEqual(values.length, 1); const [first] = values; assert.strictEqual(first.range.start.line, 0); assert.strictEqual(first.range.start.character, 17); assert.strictEqual(first.range.end.line, 0); assert.strictEqual(first.range.end.character, 25); }); }); </ins> // --- outline test('Outline, back and forth', function () {

jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-ssh0.107.1 remote-ssh-edit0.86.0 remote-wsl0.81.8 powershell2023.8.0 remote-explorer0.4.1 test-adapter-converter0.1.8 java1.25.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks This is a good find!
To verify: make sure this test has passed:


Question: inputBox.focus(); inputBox.select({ start: 0, end: lastDot > 0 && !stat.isDirectory ? lastDot : value.length }); <del> const done = once(async (success: boolean) => { </del> <ins> const done = once(async (success: boolean, finishEditing: boolean) => { </ins> label.element.style.display = 'none'; const value = inputBox.value; dispose(toDispose); container.removeChild(label.element); <del> // Timeout: once done rendering only then re-render #70902 setTimeout(() => editableData.onFinish(value, success), 0); </del> <ins> if (finishEditing) { // Timeout: once done rendering only then re-render #70902 setTimeout(() => editableData.onFinish(value, success), 0); } </ins> }); let ignoreDisposeAndBlur = true; setTimeout(() => ignoreDisposeAndBlur = false, 100); const blurDisposable = DOM.addDisposableListener(inputBox.inputElement, DOM.EventType.BLUR, () => { if (!ignoreDisposeAndBlur) { <del> done(inputBox.isInputValid()); </del> <ins> done(inputBox.isInputValid(), true); </ins> } });

<!-- 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. --Steps to Reproduce: rename on a top level file element in explorer view in single folder workspace in developer tools that the div for that file row contains multiple invisible children elements which are input element containers !
I can not reproduce this issue on my machine. How do you end the rename, with Esc, Enter or some other way? Are you doing anything else that is special?
I just press continuously. I can reproduce this easily on linux(ubuntu) and windows. The setup it's just a folder with a single file and I drag and drop the folder on vscode.
Yes I can reproduce now.
This might happen again on tomorrow's vscode insiders. Thus unlocking converstaion so we can open this issue if needed.
You are right I can repro this again.


Question: if (this._currentCommand.commandStartMarker) { this._commandMarkers.push(this._currentCommand.commandStartMarker); } <ins> this._onCommandExecuted.fire(); </ins> } this._evaluateCommandMarkersWindows(); }

Type: <bBug</b I am not sure whether the insiders version reflects the up-to-date patch though, does not seem to work in Powershell. I have noticed that this works in my remote z shell though. VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-03T15:11:12.179Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 4.18.0-477.27.1.el88.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (104)</summaryExtensionVersion ------ aiprm-lang0.0.2 Bookmarks13.4.2 spellright3.0.118 mermaid-markdown-syntax-highlighting1.5.3 vscode-firefox-debug2.9.10 codespaces1.16.2 remotehub0.62.0 overleaf-workshop0.4.1 easy-snippet0.6.3 scheme0.2.0 better-cpp-syntax1.17.2 lilypond-snippets0.1.1 vscode-edge-devtools2.1.3 jupyter-keymap1.1.2 remote-containers0.322.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.24.0 azure-repos0.38.0 remote-explorer0.5. remote-repositories0.40.0 vscode-serial-monitor0.10.0 vscode-speech0.3.


Question: if (this._currentCommand.commandStartMarker) { this._commandMarkers.push(this._currentCommand.commandStartMarker); } <ins> this._onCommandExecuted.fire(); </ins> } this._evaluateCommandMarkersWindows(); }

multi-command1.6.0 errorlens3.15.0 Bookmarks13.4.2 openscad1.2.2 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.5.3 codium0.7.13 doxdocgen1.4.0 vscode-markdownlint0.52.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.26.0 gitlens14.4.1 EditorConfig0.16.4 prettier-vscode10.1.0 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.2 copilot1.133.531 copilot-chat0.11. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.77. cslpreview0.2.2 path-autocomplete1.25.0 latex-workshop9.14.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 git-graph1.30.0 vscode-docker1.27.0 black-formatter2023.4.1 flake82023.10.0 isort2023.10.1 python2023.20.0 vscode-pylance2023.11.10 jupyter2023.11.


Question: if (this._currentCommand.commandStartMarker) { this._commandMarkers.push(this._currentCommand.commandStartMarker); } <ins> this._onCommandExecuted.fire(); </ins> } this._evaluateCommandMarkersWindows(); }

jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 azure-repos0.38.0 cmake-tools1.15.31 cpptools1.17.5 cpptools-extension-pack1.3.0 js-debug-nightly2023.11.217 remote-repositories0.40.0 vscode-github-issue-notebooks0.0.130 vscode-selfhost-test-provider0.3.20 vscode-serial-monitor0.10.0 vsliveshare1.0.5892 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.106.3 r-debugger0.5.4 java1.24.0 vscode-xml0.26.1 r2.8.2 multi-command1.6.0 vscode-deepl1.0.6 lua3.7.0 latex-utilities0.4.10 cmake0.0.17 errorlens3.15.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-java-debug0.55.0 vscode-java-dependency0.23.2 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.24.0 (2 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
it is working for me on windows with PowerShell. could you share a gif?
!
-- Also, I have noticed that sometimes the first letter typed in Accessible View is not bypassed as demonstrated in the z shell.
Thanks for the gif, yeah, it's not working for you. I cannot reproduce even when I use a terminal in the editor area. Could you pls set terminal log level to debug, repro, and provide me with those?
Looks like shell integration isn't working properly for you for some reason, which is why this isn't working. We run the open command , so that's not happening.
And yeah, I can reproduce sometimes the key not getting sent to the terminal.


Question: if (this._currentCommand.commandStartMarker) { this._commandMarkers.push(this._currentCommand.commandStartMarker); } <ins> this._onCommandExecuted.fire(); </ins> } this._evaluateCommandMarkersWindows(); }

It's a timing issue related to the context view that is shown.
I'll split that issue out
As expected, your logs do not show , which explains why it's not working for you.
I wonder if is loaded for you. That would be the only way that event wouldn't happen
Can you pls run and provide the output?
!
So is disabled for you, which is why this isn't working.
If you add this line to your , it will work
is disabled by default when screen reader is used, and enabling it does not resolve the issue. Please see the gif: !
oh, seems we'll have to use instead for this case then.
I still cannot repro. I have the likely fix, so you'll be able to verify it tomorrow.


Question: // or if no window is open (macOS only) shouldOpenInNewWindow ||= isMacintosh && windowsMainService.getWindowCount() === 0; <del> // Pass along edit session id if (params.get('editSessionId') !== null) { environmentService.editSessionId = params.get('editSessionId') ?? undefined; params.delete('editSessionId'); uri = uri.with({ query: params.toString() }); } </del> // Check for URIs to open in window const windowOpenableFromProtocolLink = app.getWindowOpenableFromProtocolLink(uri); logService.trace('app#handleURL: windowOpenableFromProtocolLink = ', windowOpenableFromProtocolLink);

Originally reported by
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
would you mind verifying this one please?


Question: import { IWorkspaceTrustRequestService } from 'vs/platform/workspace/common/workspaceTrust'; import { EditorInput } from 'vs/workbench/common/editor/editorInput'; import { EditorModel } from 'vs/workbench/common/editor/editorModel'; <del> import { CellFindMatchWithIndex, IActiveNotebookEditorDelegate, IBaseCellEditorOptions, ICellViewModel, INotebookEditorDelegate } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; </del> <ins> import { CellFindMatchWithIndex, CellFocusMode, IActiveNotebookEditorDelegate, IBaseCellEditorOptions, ICellViewModel, INotebookEditorDelegate } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; </ins> import { NotebookCellStateChangedEvent, NotebookLayoutInfo } from 'vs/workbench/contrib/notebook/browser/notebookViewEvents'; import { NotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/browser/services/notebookCellStatusBarServiceImpl'; import { ListViewInfoAccessor, NotebookCellList } from 'vs/workbench/contrib/notebook/browser/view/notebookCellList';

Ideas to experiment with: Don't shrink a cell while it is executing -less jumpy as output is replaced change the anchor heuristic from "if the resizing cell is partially visible" to "if the cell's output will shrink out of view" Anchor to a focused cell if the focus is in the cell's editor cc
For the new heuristics we are adding (growing upwards or downwards), they should probably be interrupted the moment users start to scroll, for example, if I scroll manually to a specific position, I would expect the scroll top not to change.
I disagree - That could mean if you have a cell focused and anchored, and you scroll to get it higher in the view, it would then start getting pushed down as the previous cell grows.
If I scroll to get it lower in the view, as I want to read the cells above, and since it's still in the view and focused/anchored, the cells I was reading will then pushed upwards, right? This feels unnatural compared to how browser handles scrolling or Terminal. Terminal scenario might be closer to this, as it usually sticks to the bottom when the shell is streaming outputs, but the very moment we scroll upwards, it stops sticking to the bottom.


Question: import { IProductService } from 'vs/platform/product/common/productService'; import { registerNavigableContainer } from 'vs/workbench/browser/actions/widgetNavigationCommands'; import { IEditorProgressService } from 'vs/platform/progress/common/progress'; <ins> import { IExtensionManifest } from 'vs/platform/extensions/common/extensions'; </ins> export const enum SettingsFocusContext {

Type: <bBug</bVS Code (with or without extensions disabled, makes no difference) File -Preferences -Settings blank UI with no actual settings in it. ! If you leave the settings tab open and restart vs code (such that it reopens the settings tab automatically on restart) the settings GUI will be there, but all the extension settings will be missing (observe that it is missing from the menu here): ! If I then close and reopen settings they will again be empty. VS Code version: Code 1.84.2 (, 2023-11-09T10:50:47.800Z) OS version: Linux x64 6.2.0-36-generic (Ubuntu 22.04 LTS) Modes: <details<summarySystem Info</summary </detailsExtensions disabled <!-- generated by issue reporter --
I also tried with to run this on the nVidia GPU instead of the built in Intel GPU. Makes no difference.
After running the command "Developer: Toggle Developer Tools", do any errors show up under the Console tab?
Yes I got 3 errors, they all seem related to that I'm behind a corporate proxy though. Note that I ran this with , but I still get errors related to extensions. I find this very strange ! ! !
When I'm not behind the proxy, settings work as expected. I find it very odd that VSCode would need to call out to the internet just to open settings. Opening the marketplace for extensions I understand, but not settings. Especially since I can also open settings just fine if I'm completely disconnected. It is just if I'm connected via the corporate network that it falls flat on it's face. For some further debug information: We use Zscaler at my workplace, which acts as a transparent HTTPS MITM proxy (no need/not possible to set any environment variables, but you do need to install the CA certificate). The proper certificate is installed in the system certificate store () and that works as expected with other programs. Also, other internet features in VSCode work fine, such as github copilot. EDIT: I also tried some of the settings in the proxy section of the settings to see if it made any difference. They were all set to the default values before.


Question: import { IProductService } from 'vs/platform/product/common/productService'; import { registerNavigableContainer } from 'vs/workbench/browser/actions/widgetNavigationCommands'; import { IEditorProgressService } from 'vs/platform/progress/common/progress'; <ins> import { IExtensionManifest } from 'vs/platform/extensions/common/extensions'; </ins> export const enum SettingsFocusContext {

made no difference made no difference is set, but I doubt I want to uncheck it if I understand it correctly. is set to override (default), and it sounds like it only affects extensions, so I didn't touch it. I don't see any option to manually add a certificate anywhere in the settings.
Based on I found that does work. That is a bit of a sledgehammer though, and not really an ideal (or even slightly secure) solution.
The Settings editor currently recommends the Copilot extension when it's not installed, which lines up with the error messages you're seeing. I'll put up a PR that skips over showing that feature in case of networking errors.
Tomorrow's should contain the fix.
what about the bit where it seems to ignore the root system certificates though? It seems there were actually (at least) two bugs here: one you fixed, where settings can't open when there are network errors fact that a corporate proxy with correctly installed CA certificates in the system store doesn't work. Presumably it isn't picking up the system CA certificates correctly.
thank you very much my problem is solved after follow this step (Open VS Code disable all extensions disabled, and enable once again all extension then i am successfully able to see my settings))
Please see on how to add a root certificate for Chromium, that also applies for Electron-based applications like VS Code. The root certificate example is:
Thanks this works. I thought I had already it, since I it in Chromium. But of course on Ubuntu Chromium runs in a snap by default, so it didn't use the same store as VSCode...


Question: "tab.unfocusedHoverBackground": "#6e76811a", "terminal.foreground": "#ffffffc5", "terminal.inactiveSelectionBackground": "#E5EBF1", <del> "textBlockQuote.background": "#010409", </del> <ins> "textBlockQuote.background": "#f8f8f8", </ins> "textBlockQuote.border": "#0000001a", "textCodeBlock.background": "#6e768166", "textLink.activeForeground": "#005FB8",

Example block quote in the extensions page. <img width="375" alt="image" src="https://user-"


Question: this._register(addDisposableListener(window, EventType.RESIZE, e => this.onWindowResize(e, true))); // React to editor input changes <del> const appRootUri = URI.file(this.environmentService.appRoot); this._register(this.editorService.onDidActiveEditorChange(() => { // Touchbar this.updateTouchbarMenu(); // Potential data loss when editing files // from within the installation app root if (this.environmentService.isBuilt) { this.notifyOnAppRootEditors(appRootUri); } })); </del> <ins> this._register(this.editorService.onDidActiveEditorChange(() => this.updateTouchbarMenu())); </ins> // prevent opening a real URL inside the window for (const event of [EventType.DRAG_OVER, EventType.DROP]) {

a JS file: to definition on Bug I see this scary notification: <img width="671" alt="Screen Shot 2022-07-26 at 2 31 10 PM" src="https://user-"In this case, the user was likely just trying to view the file Would it be possible to either: show this notification when saving? open these file as ?
This came in via from and I think is not good. This also reminds me that when debugging you may end up in a file from the installation dir. I think we should probably revert the change for now and think about a better solution unless there are objections.
I agree. Maybe pursue your earlier suggestion of opening all installation directory files in readonly mode. Perhaps combine with a scary warning if you save a new file in there.


Question: } getCopyFromName(): string | undefined { <del> if (isUserDataProfile(this.copyFrom)) { if (this.copyFrom.isDefault) { return localize('copy from default', "{0} (Copy)", this.copyFrom.name); } return this.copyFrom.name; } if (this.template) { return this.template.name; } return undefined; </del> <ins> const name = isUserDataProfile(this.copyFrom) ? this.copyFrom.name : this.template ? this.template.name : undefined; return name === this.userDataProfilesService.defaultProfile.name ? localize('copy from default', "{0} (Copy)", name) : name; </ins> } protected override async getChildrenForResourceType(resourceType: ProfileResourceType): Promise<IProfileChildElement[]> {

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --when you import a profile file, vscode will create a new profile but not overwrite current one or merge it to current one Actually I don't need so many profiles, the default profile is enough for me. sometimes I just want to import a keybinding settings from some one, and keep my other settings after I import it, WHAT HAPPEND!!!, all my other settings and extension are gone!!! This is unreasonable! what vscode should do is merging(or overwriting) new keybinding to my old one!! <!-- Describe the feature you'd like. --
Can I have a try on this? I'm new to contributing to this repo but want to try out stuff and get along with starting out at the same time..
Edit: Ignore this, I misread this with other issue
Just wondering is not this same as Can you please distinguish your ask from the other?
partially like But I request more flexibility: Suppose current profile is profile X (X can be default or user profile) when I import A profile, that will be: A.keybinding, A.UI, A.extensions ..... and I choose A.keybindings only to import what I expect: there are 2 options for user when importing: option 1 - merge to current profile, (so X profile's keybindings overwritten but other part of settings kept) option 2 - or create a new profile partially basing on what imported (this is what VSCode currently does )
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to 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!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
?


Question: } getCopyFromName(): string | undefined { <del> if (isUserDataProfile(this.copyFrom)) { if (this.copyFrom.isDefault) { return localize('copy from default', "{0} (Copy)", this.copyFrom.name); } return this.copyFrom.name; } if (this.template) { return this.template.name; } return undefined; </del> <ins> const name = isUserDataProfile(this.copyFrom) ? this.copyFrom.name : this.template ? this.template.name : undefined; return name === this.userDataProfilesService.defaultProfile.name ? localize('copy from default', "{0} (Copy)", name) : name; </ins> } protected override async getChildrenForResourceType(resourceType: ProfileResourceType): Promise<IProfileChildElement[]> {

I would think this is not a good one to start at and recommend to look for issues labelled with or
I really want to try out.. just to experience and I think I would be able to do it. Even if it's not a good first issue I have contributed to other open source repos. Can I?
Sure, here is the starting point
Thanks a lot for this I was checking your PR with the user-profile feature implementation.. For now I'm just figuring out stuff that is already present. Just a single doubt that I had was about the merging of profiles.. would the editor be like a merge editor that opens whenever we get a merge conflict on git..? Or something else with checkboxes on which settings to get imported from each of the sides(current and imported one)? I'll try my best
For the sake of simplicity, during conflicts, I would simply override with the new one.
Also
Note to self: see for manual workaround.
You can now import and replace any existing profile (including Default profile) from new Profiles Editor UI
To verify: Create a profile A and configure with some settings and extensions Export the profile A to the disk Change some settings and extensions in the profile Import the profile A You should be able to import the profile with name A replacing the existing profile
When I export the profile, install some new extensions, then import the profile with the same name, I would expect the installed extensions to disappear from my extensions list, but that doesn't seem to be the case
It is working for me, ie., I only see the extension from the imported profile. After importing, extensions are getting replaced. Can you please share the exact steps to repro?
Using vscode 1.92.2, I can't figure out how to get to that UI. Where do I find it?
search settings for "profiles experimental"
Thank you!


Question: } return false; }); <del> if (refer && slashCommandLike) { </del> <ins> if (refer && slashCommandLike && !this._session.lastExchange) { </ins> this._log('[IE] seeing refer command, continuing outside editor', this._session.provider.extensionId); // cancel this request

Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget


Question: } return false; }); <del> if (refer && slashCommandLike) { </del> <ins> if (refer && slashCommandLike && !this._session.lastExchange) { </ins> this._log('[IE] seeing refer command, continuing outside editor', this._session.provider.extensionId); // cancel this request

cmd+i now cmd+backspace invokes instead of deleting the line in the text editor The ChatWidget is writing its context keys to the editor's ContextKeyService, so we need a scoped CKS at some point, either inside the ChatWidget or outside in the inline widgets
pushing a fix to use a scoped CKS but this does look like debt. Isn't a better fix to reset context keys when hiding/dispose the chat widget?
I don't think those context keys should be applied on the editor at all, they are intended to just be active inside the widget's dom tree.


Question: import { Disposable } from 'vs/base/common/lifecycle'; import { IContextKeyService, IContextKey, setConstant as setConstantContextKey } from 'vs/platform/contextkey/common/contextkey'; import { InputFocusedContext, IsMacContext, IsLinuxContext, IsWindowsContext, IsWebContext, IsMacNativeContext, IsDevelopmentContext, IsIOSContext, ProductQualityContext, IsMobileContext } from 'vs/platform/contextkey/common/contextkeys'; <del> import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext } from 'vs/workbench/common/contextkeys'; </del> <ins> import { SplitEditorsVertically, InEditorZenModeContext, AuxiliaryBarVisibleContext, SideBarVisibleContext, PanelAlignmentContext, PanelMaximizedContext, PanelVisibleContext, EmbedderIdentifierContext, EditorTabsVisibleContext, IsMainEditorCenteredLayoutContext, MainEditorAreaVisibleContext, DirtyWorkingCopiesContext, EmptyWorkspaceSupportContext, EnterMultiRootWorkspaceSupportContext, HasWebFileSystemAccess, IsMainWindowFullscreenContext, OpenFolderWorkspaceSupportContext, RemoteNameContext, VirtualWorkspaceContext, WorkbenchStateContext, WorkspaceFolderCountContext, PanelPositionContext, TemporaryWorkspaceContext, TitleBarVisibleContext, TitleBarStyleContext, IsAuxiliaryWindowFocusedContext, ActiveEditorGroupEmptyContext, ActiveEditorGroupIndexContext, ActiveEditorGroupLastContext, ActiveEditorGroupLockedContext, MultipleEditorGroupsContext, EditorsVisibleContext } from 'vs/workbench/common/contextkeys'; </ins> import { trackFocus, addDisposableListener, EventType, onDidRegisterWindow, getActiveWindow } from 'vs/base/browser/dom'; import { preferredSideBySideGroupDirection, GroupDirection, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration';

Reproduced on OSS, Mac Steps to Reproduce: Code OSS a file cmd+w Closes the window Bisect points to this commit -
I can reproduce and this is likely context keys not being set properly because conditionally closes the window if no active editor. !
There are context keys that are now loose, for example
Follow up work


Question: } /** <ins> * Impacts the behavior and appearance of the validation message. */ export enum InputBoxValidationSeverity { Info = 1, Warning = 2, Error = 3 } /** * Object to configure the behavior of the validation message. */ export interface InputBoxValidationMessage { /** * The validation message to display. */ readonly message: string; /** * The severity of the validation message. * NOTE: When using `InputBoxValidationSeverity.Error`, the user will not be allowed to accept (hit ENTER) the input. * `Info` and `Warning` will still allow the InputBox to accept the input. */ readonly severity: InputBoxValidationSeverity; } /** </ins> * Options to configure the behavior of the input box UI. */ export interface InputBoxOptions {

<!-- 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. --We already have this feature in Core: where you can return where . Truth be told, this already works in API today though it's not officially a part of the API today (so it could change at any moment). For example, I can do: <img width="738" alt="image" src="https://user-"with it goes from: to it goes from: to
ref
Created a TPI so moving this to April for Finalization.


Question: condition, hitCondition, logMessage <del> }]); </del> <ins> }], `breakpointWidget`); </ins> } }

When going over our telemetry for debug actions we have the ability to track usage counts of debug actions triggered from keyboard shortcuts and commands, as they execute commands which we emit telemetry for, but we don't seem to have telemetry in place for breakpoints set in the gutter (click or context menu). This is unfortunate as my hypothesis is that the majority of breakpoints are set this way. Ask Add ability to track breakpoint toggles (add/remove/change) from Gutter click Add ability to track breakpoint toggles from gutter context menu
would you like to contribute a PR for this? It shuold be fairly simple and you already have the nice code pointers.
I'd be happy too, but we should land on an agreement on how to implement it. What's the best approach? 1) Add telemetry directly to the gutter actions 2) Re-wire the gutter actions to execute a command instead?
for the best approach let's first see what you want to get exactly? total amount of all breakpoints set (including the gutter) grained events for breakpoint setting based on the way the user initated that aciton In case of 1 we should just add a telemetry ping in the  since everyone should go through there In case of 2 depends on how fine grained you want it, if for every place then we should add an argument or something like that in the addBreakpoints method and then also report that to telemetry.
I'd like us to be able to contribute a source/initiator to given breakpoint, so we can get an UI usage distributions, etc.
I suggest the following Add a third argument In the implementation of that method use the telemetry service to report the appropriate event with the context. And you should nicely get all the errors of all the callers of , simply pass different string context for each caller and you shuold be good to go. Let me know if you have any questions
Cool, I'l see what I can get cooking!
Removing my assignment for this. feel free to assign me back if you do not have time to tackle this and if we need this for August
hey, would you still like this? If yes I can also look into it in October
I'd still like to do this to get my hands dirty.
cool, unasigning myself and let's leave it for October
Verified by code review, adding verified label


Question: let subscription: IDisposable | undefined; if (typeof provider.onDidChange === 'function') { <del> subscription = provider.onDidChange(uri => { </del> <ins> let lastEvent: Promise<void> | undefined; subscription = provider.onDidChange(async uri => { </ins> if (uri.scheme !== scheme) { this._logService.warn(`Provider for scheme '${scheme}' is firing event for schema '${uri.scheme}' which will be IGNORED`); return; } <del> if (this._documentsAndEditors.getDocument(uri)) { this.$provideTextDocumentContent(handle, uri).then(value => { </del> <ins> if (!this._documentsAndEditors.getDocument(uri)) { // ignore event if document isn't open return; } if (lastEvent) { await lastEvent; } const thisEvent = this.$provideTextDocumentContent(handle, uri) .then(async value => { </ins> if (!value && typeof value !== 'string') { return; }

Does this issue occur when all extensions are disabled?: Yes VS Code Version: 1.77.2 OS Version: Windows 10 It seems that when refreshing () the in a short period, the second refresh is not actually performed. I have provided an example repo and a video demonstrating the issue. Basically we have a that shadows the active editor so whenever a user changes the active editor we update the read only document. However, if the user changes the editors quickly enough then the second change is dropped... Steps to Reproduce: the extension the command "Open Read Only Document" tabs quickly and see how it falls behind even though the content is up to date https://user- The content is actually set but it seems the second is dropped. Because if you refresh the document manually it shows the correct content (see the video above). The issue seems to happen more frequently if the content of the file(s) is large.
I found out why it happens and attempted a fix (with explanation) in
Pinging so it does not get lost


Question: this.onModelChanged(); this.codeEditorService.registerDecorationType('comment-controller', COMMENTEDITOR_DECORATION_KEY, {}); <del> this.commentService.registerContinueOnCommentProvider({ provideContinueOnComments: () => { const pendingComments: languages.PendingCommentThread[] = []; if (this._commentWidgets) { for (const zone of this._commentWidgets) { const zonePendingComments = zone.getPendingComments(); const pendingNewComment = zonePendingComments.newComment; if (!pendingNewComment) { continue; } let lastCommentBody; if (zone.commentThread.comments && zone.commentThread.comments.length) { const lastComment = zone.commentThread.comments[zone.commentThread.comments.length - 1]; if (typeof lastComment.body === 'string') { lastCommentBody = lastComment.body; } else { lastCommentBody = lastComment.body.value; </del> <ins> this.globalToDispose.add( this.commentService.registerContinueOnCommentProvider({ provideContinueOnComments: () => { const pendingComments: languages.PendingCommentThread[] = []; if (this._commentWidgets) { for (const zone of this._commentWidgets) { const zonePendingComments = zone.getPendingComments(); const pendingNewComment = zonePendingComments.newComment; if (!pendingNewComment) { continue; } let lastCommentBody; if (zone.commentThread.comments && zone.commentThread.comments.length) { const lastComment = zone.commentThread.comments[zone.commentThread.comments.length - 1]; if (typeof lastComment.body === 'string') { lastCommentBody = lastComment.body; } else { lastCommentBody = lastComment.body.value; } </ins> } <del> } if (pendingNewComment !== lastCommentBody) { pendingComments.push({ owner: zone.owner, uri: zone.editor.getModel()!.uri, range: zone.commentThread.range, body: pendingNewComment, isReply: (zone.commentThread.comments !== undefined) && (zone.commentThread.comments.length > 0) }); </del> <ins> if (pendingNewComment !== lastCommentBody) { pendingComments.push({ owner: zone.owner, uri: zone.editor.getModel()!.uri, range: zone.commentThread.range, body: pendingNewComment, isReply: (zone.commentThread.comments !== undefined) && (zone.commentThread.comments.length > 0) }); } </ins> } } <ins> return pendingComments; </ins> } <del> return pendingComments; } }); </del> <ins> }) ); </ins> } private registerEditorListeners() {

<!-- 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.84.2 OS Version: Ubuntu 23.04 Steps to Reproduce: an editor the editor that a was created but not removed In Chrome devtools, the retainer chain points to : !
I discussed with and when an editor is closed it is not disposed unless it is the last editor in the group and the group isn't the default group, so in the scenario described in this issue, the is still expected to exist. Here's how to check if the is being leaked: an editor. Check how many s you have. a second editor in a new editor group. the editor in the second group. Check how many s you have. If there is no leak, there should be the same number as in step 1. I have tested, and I don't see a memory leak from .
Thanks a lot for the info, it's really helpful! And apologies, you're absolutely right! I was so focused looking for something that would explain the two and didn't really think about anything else. Your steps make much more sense and with that I don't see a memory leak from . No wonder it took me so long to find the apparent source, when there is none... xD Thanks again!


Question: import { QuickQuestionMode } from 'vs/workbench/contrib/chat/browser/actions/quickQuestionActions/quickQuestionAction'; import { alertFocusChange } from 'vs/workbench/contrib/accessibility/browser/accessibility.contribution'; import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; <ins> import { ChatWelcomeMessageModel } from 'vs/workbench/contrib/chat/common/chatModel'; import { IMarkdownString } from 'vs/base/common/htmlContent'; </ins> // Register configuration const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);

One way of resolving this would be repeating the position information when I press any of the commands, even if there is no change. Another possibility would be to prevent the widget from refocusing when I am in the first / last element, and I try to move beyond that element. In that way pressing the next command will not produce any feedback if I am in the last one, and the previous will not produce any feedback if I am in the first one. Does it make sense? In any case, this would be a refinement, not something that would prevent someone from using the feature. Originally posted by in
Something else to consider when fine tuning the responses. Right now, position information is announced using an alert in macOS, and a status message in Windows. This is a situation where it makes sense to use an alert in all platforms so that screen readers prioritize this over other events. For example, right now JAWS is announcing position information after reannouncing the widget.
Huh, I'm using for all platforms here which appears to be platform agnostic I think it might just be a JAWS issue - does this repro when using NVDA?
It doesn't, but NVDA handles aria-live differently. You may be right dough. I'll debug NVDA on Monday and we'll know for sure which event it is seeing. JAWS may be simply prioritizing the focus event.
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
Focus an accessible view for which there are several elements (like chat responses or notifications). Verify that if you are on the first or last element, pressing next or previous does not result in repeated alerts. it should not notify the screen reader user as nothing has changed.
Note to verifier there's an issue to disable these actions when they cannot be taken, which is the better fix.
Verified. With NVDA, if I press enter on the Next button while on the last chat response, the focus goes back to the response text instead of staying on the button, though that might be by design.


Question: tags: ['accessibility'] }, [AccessibilityAlertSettingId.Format]: { <del> 'markdownDescription': localize('alert.format', "When in screen reader mode, alerts when a file or notebook cell is formatted. Also see {0}", '`#audioCues.format#`'), </del> <ins> 'markdownDescription': localize('alert.format', "When in screen reader mode, alerts when a file or notebook cell is formatted. Note that this will be ignored when {0} is enabled.", '`#audioCues.format#`'), </ins> 'type': 'string', 'enum': ['userGesture', 'always', 'never'], <del> 'default': 'never', </del> <ins> 'default': 'always', </ins> 'enumDescriptions': [ localize('alert.format.userGesture', "Alerts when a file is formatted via user gesture."), localize('alert.format.always', "Alerts whenever is a file is formatted, including auto save, on cell execution, and more."),

Type: <bFeature Request</bCC Just like other audio cues, please reduce aria alert when "" is used. VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-17T05:34:42.128Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
also when is used
To verify, Enable Enable a screen reader Format a document Verify that the screen reader doesn't alert and you just hear the audio cue
Verified, but found this:


Question: // Don't touch processes if the shutdown was a result of reload as they will be reattached const shouldPersistTerminals = this._configHelper.config.enablePersistentSessions && e.reason === ShutdownReason.RELOAD; if (shouldPersistTerminals) { <del> for (const instance of this.instances) { </del> <ins> for (const instance of this._terminalGroupService.instances) { </ins> instance.detachProcessAndDispose(TerminalExitReason.Shutdown); } return; } <del> // Force dispose of all terminal instances const shouldPersistTerminalsForEvent = this._shouldReviveProcesses(e.reason); for (const instance of this.instances) { if (shouldPersistTerminalsForEvent) { instance.shutdownPersistentProcessId = instance.persistentProcessId; } </del> <ins> // Force dispose of all pane terminal instances for (const instance of this._terminalGroupService.instances) { </ins> instance.dispose(TerminalExitReason.Shutdown); }

Type: <bBug</bis enabled. Ensure is set to , or (any option that will restore the last open window after quiting and re-opening VSCode). a terminal in the editor area, e.g. using the command "Terminal: Create New Terminal in Editor Area". Type something into the terminal e.g. . VSCode via "Developer: Reload Window". Note that the terminal tab in the editor area is still there (restored) after the window is reloaded. This is the expected behavior. VSCode then reopen the application. Note that the terminal tab is not present (is not restored) when the window is restored (and since there is no terminal tab, there is also nowhere to restore the session to ) . This is unexpected behavior as previously this terminal tab would be restored into the editor area, with its session history, even after quitting and reopening VSCode. Another terminal persistence bug on 1.74.0, also related to killing terminals: VS Code version: Code 1.74.0 (, 2022-12-05T16:37:54.581Z) OS version: Darwin arm64 22.2.0 Modes: Sandboxed: No <details<summarySystem Info</summary </details<details<summaryExtensions (16)</summaryExtensionVersion ------ vscode-neovim0.0.94 calva2.0.321 file-browser0.2.11 portal0.35.0 viml0.1.7 prettier-vscode9.10.3 vscode-htmlhint1.0.4 vscode-sshfs1.25.0 ssh-config-syntax-highlighter0.0.4 sqltools0.26.0 sqltools-driver-pg0.4.0 errorlens3.6.0 learn-vim0.0.28 vspacecode0.10.10 whichkey0.11.3 markdown-all-in-one3.5.0 </details<!-- generated by issue reporter --
I cannot reproduce that in Insider's https://user-
have you typed in the terminal before reloading? if not, that's by design
Pardon me I was unclear in the original writeup. The problem occurs in step 4 and is now reflected in edits above. Thank you! Regarding the direct question: yes, I have typed in the terminal before reloading.


Question: // Don't touch processes if the shutdown was a result of reload as they will be reattached const shouldPersistTerminals = this._configHelper.config.enablePersistentSessions && e.reason === ShutdownReason.RELOAD; if (shouldPersistTerminals) { <del> for (const instance of this.instances) { </del> <ins> for (const instance of this._terminalGroupService.instances) { </ins> instance.detachProcessAndDispose(TerminalExitReason.Shutdown); } return; } <del> // Force dispose of all terminal instances const shouldPersistTerminalsForEvent = this._shouldReviveProcesses(e.reason); for (const instance of this.instances) { if (shouldPersistTerminalsForEvent) { instance.shutdownPersistentProcessId = instance.persistentProcessId; } </del> <ins> // Force dispose of all pane terminal instances for (const instance of this._terminalGroupService.instances) { </ins> instance.dispose(TerminalExitReason.Shutdown); }

/duplicate
Reviving editor-area terminals was working great in 1.73.x. This was marked as a duplicate of a feature request. Is it not a regression?
Created a PR with a possible fix
VSCode v1.74.2 occurs the same problem, does the fix takes effect or I need to config some settings?
The fix will be available in 1.75 release or you can try it in insiders


Question: if (symbol && this._currentProvider) { this.showSymbol(this._currentProvider, symbol); } <del> this._currentProvider = provider; </del> } previous(): void {

accessible view go to symbol picker are closed sometimes (when there's more than one item) cc


Question: this.widget.layout(this.width); this.widget.focus(); <ins> this.widget.value = this.previousPattern; this.widget.select(); </ins> this._onDidChangeOpenState.fire(true); }

Testing When find box is not visible and I just type but there are multiple results, then maybe allow me via keybindings (F3?) to go to next/prev result?
You mean using the type navigation feature? I think this would be too implicit. I don't know of any other native widget doing something like this.
I think the editor has a way to navigate in find results even without showing find. i think in that mode it only puts the search toggles up in a little overlay.
The editor opens up the widget once again, when pressing <kbdF3</kbd. Yeah we can do that.
I think the tree does the same, I had tried and it showed the input box, but it was empty though.
Yeah. Renamed this to remember the input across usages, which is what the editor does.


Question: private cache = new Map<string, string>(); <del> private readonly flushDelayer = new ThrottledDelayer<void>(Storage.DEFAULT_FLUSH_DELAY); </del> <ins> private readonly flushDelayer = this._register(new ThrottledDelayer<void>(Storage.DEFAULT_FLUSH_DELAY)); </ins> private pendingDeletes = new Set<string>(); private pendingInserts = new Map<string, string>();

When running unit tests:
Similar problem in
This is not coming from those tests, the ugly part is these errors just report async. I found the following tests to be the underlying cause: The best is to run and add a breakpoint here:
I think I may have found a central fix...


Question: import { DiffEditorWidget } from 'vs/editor/browser/widget/diffEditor/diffEditorWidget'; import { LineRange, LineRangeSet } from 'vs/editor/common/core/lineRange'; import { Range } from 'vs/editor/common/core/range'; <ins> import { RangeMapping } from 'vs/editor/common/diff/rangeMapping'; </ins> import { GlyphMarginLane } from 'vs/editor/common/model'; import { localize } from 'vs/nls'; <del> import { RangeMapping } from 'vs/editor/common/diff/rangeMapping'; import { renderIcon } from 'vs/base/browser/ui/iconLabel/iconLabels'; import { Codicon } from 'vs/base/common/codicons'; import { h } from 'vs/base/browser/dom'; </del> export class RevertButtonsFeature extends Disposable { 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.85.0 OS Version: Ubuntu 23.04 a file with contents a file with contents the explorer, right click on file and select the explorer, right click on file and select , opening the diff editor the diff editor that , and event listeners have been but not been removed The issue is not present in VS Code 1.84.2. It seems to be caused by


Question: /** * Adds new breakpoints to the model for the file specified with the uri. Notifies debug adapter of breakpoint changes. */ <del> addBreakpoints(uri: uri, rawBreakpoints: IBreakpointData[]): TPromise<IBreakpoint[]>; </del> <ins> addBreakpoints(uri: uri, rawBreakpoints: IBreakpointData[], context: string): TPromise<IBreakpoint[]>; </ins> /** * Updates the breakpoints.


Question: } if (pattern.parsedPattern(relevantPath)) { <del> return this.applyTempate(pattern.template, resource); </del> <ins> return this.applyTempate(pattern.template, resource, relevantPath); </ins> } } return undefined; } <del> private readonly _parsedTemplateExpression = /${(dirname|filename|extname|dirname((d+)))}/g; private applyTempate(template: string, resource: URI): string { </del> <ins> private readonly _parsedTemplateExpression = /${(dirname|filename|extname|dirname(([-+]?d+)))}/g; private applyTempate(template: string, resource: URI, relevantPath: string): string { </ins> let parsedPath: undefined | ParsedPath; return template.replace(this._parsedTemplateExpression, (match: string, variable: string, arg: string) => { parsedPath = parsedPath ?? parsePath(resource.path);

Currently, the editor does not support customizing file labels in a way that would allow filenames to be prefixed with the name of the application or folder from the start of the path. This limitation affects projects structured in a monorepo setup, particularly when files are deeply nested within application-specific directories. Supporting negative indices for could solve this problem. This would enable accessing folder names starting from the beginning of the path. Implementing negative indices would cater to the needs of projects with files at various nesting levels within their structure.
Is the reasoning not the other way round or am I misunderstanding how it currently works? E.g. I'd like to access last 2 parts of the path, but the description of the settings suggests that only the single final and the starting folders can be accessed.
For the following path you will get the following values: Path: : : : : With negative indices: : : :
Here is an example of the mono repo: It has a root and multiple projects in the folder. It is common to make changes in multiple "packages" at once, and it would be convenient if we could identify files by the . Example: -
Verification steps: a custom editor label. The template should include , for which is a negative number. For example, add in , item: value: a file which matches the pattern specified in step 1. For the example specified in step 1: every file matches the pattern editor tab should have set the correct folder name for . Here an explanation on how negative indices work: For the example specified in step 1: the name of the editor in the tab should start with the top level folder the file is located in. In the vscode repo the file would have the custom name
I have followed the steps for the verification and the settings file is renamed to . The TS files are renamed correctly to . Is this expected?


Question: // do nothing } if (stat && stat.isDirectory && (resources.basename(valueUri) !== '.') && this.endsWithSlash(value)) { <ins> valueUri = this.tryAddTrailingSeparatorToDirectory(valueUri, stat); </ins> return await this.updateItems(valueUri) ? UpdateResult.UpdatedWithTrailing : UpdateResult.Updated; } else if (this.endsWithSlash(value)) { // The input box contains a path that doesn't exist on the system.

Repro: Windows open test resolver window folder everything except !
I'm not able to reproduce this, even when I select the entire series of subfolders before before deleting. Is this on a VM?
No folder, just test resolver. It's an easy repro for me: ! Code - OSS about: Version: 1.69.0 Commit: Unknown Date: Unknown Electron: 18.3.5 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: Windows_NT x64 10.0.
Your slashes are going the wrong way, which is suspicious. How do you launch Code - OSS?
and then new test resolver window command
I've repro'd the slashes, but nothing I try will cause the missing directories to repro. Only difference I see is that I am on Windows 11 and you are on 10. Can you try swapping the separator on the resource label formatter? If that doesn't resolve it then we'll set up some time to debug.
I'm on Windows 11 too, 21H2, .739
Regardless of the value above it doesn't work for both and . Is there anywhere of interest I can debug into? Where does the trigger character code live?
We debugged into this together, seems related to the being (or ) and not
After our debugging yesterday this started to feel familiar:


Question: const [firstPart,] = keybinding.getDispatchParts(); if (firstPart === null) { // cannot be dispatched, probably only modifier keys <ins> this._log(` Keyboard event cannot be dispatched`); </ins> return null; }

Issue Type: <bBug</bI remapped command to [Alt + V]. And such keybinding doesn't work. KeybindingService log is as follows. Keybinding seems to pass through vscode to terminal since when I run in terminal it registers keypresses. VS Code version: Code 1.67.2 (, 2022-05-17T18:23:40.286Z) OS version: Linux x64 5.15.41-1-MANJARO Restricted Mode: No Remote OS version: Linux x64 4.19.119-30.2 <details<summarySystem Info</summary </detailsExtensions: none<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
This is working fine for me, I do see the warning that I don't understand though. any insights into what could be happening here? Could the soft dispatch teh terminal does be causing problems with this ignore single modifier thing?
Yes, I think is not dispatched through the keybinding service in this case. Looking again at the OP log: And comparing it with the output I see when binding to : Notice how the OP's log does not contain the keydown event for (i.e. this line ), but there are logs about being dispatched. I think the logs about being dispatched relate to the call the terminal does, but it looks to me that the keybinding service doesn't really get to dispatch the keyboard event, so it doesn't execute the command. I see how is making the log confusing so I will push a change to improve logging to better distinguish between and the real dispatch.
do you have or set in your
Yes I have enabled, but I didn't override . As far as I understand is included in by default.
It is but when is set to true it overrides as a convenience setting for users who use a lot of shell-based keybindings. If you're getting into needing to customize , I'd recommend setting back to false and tweaking instead. I checked the docs and it looks like this is already explained so I don't think there's anything we need to do on our end: !
ok, thanks a lot for your help


Question: if (e.disabled || e.message) { previewProfileAction.enabled = createAction.enabled = !this.newProfileElement?.disabled && !this.newProfileElement?.message; } <ins> if (e.name) { if (this.newProfileElement?.copyFrom && this.userDataProfilesService.profiles.some(p => p.name === this.newProfileElement?.name)) { createAction.label = localize('replace', "Replace"); } else { createAction.label = localize('create', "Create"); } } </ins> })); this._profiles.push([this.newProfileElement, disposables]); this._onDidChange.fire(this.newProfileElement);

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --when you import a profile file, vscode will create a new profile but not overwrite current one or merge it to current one Actually I don't need so many profiles, the default profile is enough for me. sometimes I just want to import a keybinding settings from some one, and keep my other settings after I import it, WHAT HAPPEND!!!, all my other settings and extension are gone!!! This is unreasonable! what vscode should do is merging(or overwriting) new keybinding to my old one!! <!-- Describe the feature you'd like. --
Can I have a try on this? I'm new to contributing to this repo but want to try out stuff and get along with starting out at the same time..
Edit: Ignore this, I misread this with other issue
Just wondering is not this same as Can you please distinguish your ask from the other?
partially like But I request more flexibility: Suppose current profile is profile X (X can be default or user profile) when I import A profile, that will be: A.keybinding, A.UI, A.extensions ..... and I choose A.keybindings only to import what I expect: there are 2 options for user when importing: option 1 - merge to current profile, (so X profile's keybindings overwritten but other part of settings kept) option 2 - or create a new profile partially basing on what imported (this is what VSCode currently does )
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to 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!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
?


Question: if (e.disabled || e.message) { previewProfileAction.enabled = createAction.enabled = !this.newProfileElement?.disabled && !this.newProfileElement?.message; } <ins> if (e.name) { if (this.newProfileElement?.copyFrom && this.userDataProfilesService.profiles.some(p => p.name === this.newProfileElement?.name)) { createAction.label = localize('replace', "Replace"); } else { createAction.label = localize('create', "Create"); } } </ins> })); this._profiles.push([this.newProfileElement, disposables]); this._onDidChange.fire(this.newProfileElement);

I would think this is not a good one to start at and recommend to look for issues labelled with or
I really want to try out.. just to experience and I think I would be able to do it. Even if it's not a good first issue I have contributed to other open source repos. Can I?
Sure, here is the starting point
Thanks a lot for this I was checking your PR with the user-profile feature implementation.. For now I'm just figuring out stuff that is already present. Just a single doubt that I had was about the merging of profiles.. would the editor be like a merge editor that opens whenever we get a merge conflict on git..? Or something else with checkboxes on which settings to get imported from each of the sides(current and imported one)? I'll try my best
For the sake of simplicity, during conflicts, I would simply override with the new one.
Also
Note to self: see for manual workaround.
You can now import and replace any existing profile (including Default profile) from new Profiles Editor UI
To verify: Create a profile A and configure with some settings and extensions Export the profile A to the disk Change some settings and extensions in the profile Import the profile A You should be able to import the profile with name A replacing the existing profile
When I export the profile, install some new extensions, then import the profile with the same name, I would expect the installed extensions to disappear from my extensions list, but that doesn't seem to be the case
It is working for me, ie., I only see the extension from the imported profile. After importing, extensions are getting replaced. Can you please share the exact steps to repro?
Using vscode 1.92.2, I can't figure out how to get to that UI. Where do I find it?
search settings for "profiles experimental"
Thank you!


Question: position?: EditorPosition; preserveFocus?: boolean; pinned?: boolean; <ins> selection?: IRange; </ins> } export abstract class MainThreadEditorsShape {

For
Verify: write an extension that exercises the following APIs by passing in a selection as option and verify the selection is revealed and showing up in the opened editor: command API Provide a property of type to get it. !


Question: }); test('cursorWordAccessibilityRight', () => { <del> const EXPECTED = ['   /* Just| some|   more|   text| a|+= 3| +5|-3| + 7| */  |'].join('n'); </del> <ins> const EXPECTED = ['   /* |Just |some   |more   |text |a+= |3 +|5-|3 + |7 */  |'].join('n'); </ins> const [text,] = deserializePipePositions(EXPECTED); const actualStops = testRepeatedActionAndExtractPositions( text,

Issue Type: <bBug</b(I have fixed this myself and will send a pull request in a minute) Steps to reproduce: accessibility mode in settings. a new document and type: to the beginning and press Ctrl+Right. Expected behavior: Cursor should jump to the letter w - that is the beginning of the second word. This behavior would be consistent with word navigation in most other Windows programs, e.g. notepad, MS Word, Visual Studio - just to name a few. Actual behavior: Cursor jumps to the space immediately after the first word, and the screenreader announces "Hello". The biggest problem with this behavior is that screenreader users would have to relearn how they make small edits in text files. For example, if I want to delete the word "world" in my example, I would go to the beginning of the line and press Control+Right until my screenreader announces the word I'm interested in. And then, assuming that cursor at this point is at the beginning of the word, I would press delete 5 times. However, in VSCode the cursor would be at the end of the word, and I would end up deleting wrong part of the line. VS Code version: Code - Insiders 1.40.0-insider (, 2019-10-25T14:03:31.497Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </detailsExtensions: none <!-- generated by issue reporter --
FYI, I found related discussion here: , but that thread is now locked.


Question: disturl "https://electronjs.org/headers" <del> target "25.8.1" ms_build_id "23779380" </del> <ins> target "25.8.2" ms_build_id "23977753" </ins> runtime "electron" build_from_source "true"

<!-- 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. --<!-- 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. --Something has changed in the latest Insiders so our CI started to fail with errors (any branch but here is an ): Do you have any idea what might cause it so we can make changes on our side? Might it be something with your dependencies?
Runtime has no changes with insiders, this seems like a regression from the recent http proxy changes based on in upstream. Passing onto From a quick look the extension relies on package which makes network connection. it would be great if you can reduce the test case to a minimal extension sample for us to debug this issue further. Thanks!
Unfortunately, we haven't been able to isolate the issue for a minimal extension sample so far. To reproduce the problem, you can follow these steps: the and install the extension. the following commands in the terminal: When running all tests, you may observe multiple failures with the . However, when running the failed tests separately, they randomly may or may not fail again, which makes it hard to identify the cause of the issue. It is possible that your proxy patches might be the right place to look for further investigation.
Maybe a related discussion:
Found it. The place in our code that fails with the latest Insiders is . I created a so you can try it, but here is the code snippet for a quick look:
Thanks for putting together this test! My investigation so far: is called with resulting in the reported error when it calls here: The check at would prevent from being called when , but that is only with in 19.0.0.


Question: disturl "https://electronjs.org/headers" <del> target "25.8.1" ms_build_id "23779380" </del> <ins> target "25.8.2" ms_build_id "23977753" </ins> runtime "electron" build_from_source "true"

Still need to check older versions to see if that check was backported and see if there is a way to test this assessment.
is available in 18.8.0 and 16.18.0, our exploration builds based on Node v18 has this change, you can use the builds from to verify the assessment.
The test does not reproduce the issue in the exploration build. Still trying to understand what is happening (please ignore the above code pointers) by looking at the code at the tag. I see the failing call to being triggered in : What I don't quite understand is that the callstack to with comes from : But at that line is supposed to call not as it appear in the callstack: Could you point me at the source that went into Electron? I believe that is not the exact same as that at
Electron pulls source from when building, what you are looking at is the correct one. I think the async stack is missing a trampoline calll, but you are seeing a write after shutdown stack same as
Thanks This looks like an upstream issue to me, should not be called when is already . I don't see the change in 18.15.0 (the version the exploration build is using) yet that might have fixed it.
We have reverted to the previous way of loading certificates as we are getting close to a release ().
We're seeing this again in our macos and Windows CI jobs for VSCode "Insiders" (not current VSCode stable version 1.82.2). Was node or electron updated in the last 2 days on VSCode Insiders?
There is fix in upstream for the above scenario, I will backport it to relevant release lines.
Could you confirm that todays Insiders build fixes the problem? Thanks!
Confirmed, thanks!


Question: } return this.addExtensionToWorkspaceConfig(workspaceConfig, extensionId, shouldRecommend).then(() => { <del> this.notificationService.info(localize('AddToWorkspaceRecommendations.success', 'The extension was successfully added to this workspace's recommendations.')); </del> <ins> this.notificationService.prompt(Severity.Info, localize('AddToWorkspaceRecommendations.success', 'The extension was successfully added to this workspace's recommendations.'), [{ label: localize('viewChanges', "View Changes"), run: () => this.openWorkspaceConfigurationFile(workspaceConfig) }]); </ins> }, err => { this.notificationService.error(localize('AddToWorkspaceRecommendations.failure', 'Failed to write. {0}', err)); });

testing It would be nice to have a link on this prompt to open the workspace . that way i can see what was done. !
Link in the text mostly is not possible, as that works only for actual links. We might have to add a button that says which opens the file that was edited.


Question: /** * Create a regular file. * <del> * @param uri Uri of the new file.. </del> <ins> * @param uri Uri of the new file. </ins> * @param options Defines if an existing file should be overwritten or be <del> * ignored. When overwrite and ignoreIfExists are both set overwrite wins. </del> <ins> * ignored. When `overwrite` and `ignoreIfExists` are both set `overwrite` wins. </ins> * When both are unset and when the file already exists then the edit cannot <del> * be applied successfully. </del> <ins> * be applied successfully. The `content`-property allows to set the initial contents * the file is being created with. </ins> * @param metadata Optional metadata for the entry. */ <del> createFile(uri: Uri, options?: { overwrite?: boolean; ignoreIfExists?: boolean }, metadata?: WorkspaceEditEntryMetadata): void; </del> <ins> createFile(uri: Uri, options?: { overwrite?: boolean; ignoreIfExists?: boolean; contents?: Uint8Array }, metadata?: WorkspaceEditEntryMetadata): void; </ins> /** * Delete a file or folder.

Add support for setting the contents of files created by workspace edits My proposed would be to add a option to : For , we want to support copying images from desktop into with drag and drop. Right now we have to use the apis to create the image file Using a workspace edit would let us express the entire operation in a single , which will play more nicely with undo/redo
Looks like support for this may already exist internally: However getting a of new file data from the extension host to the main process may be tricky. We can only efficiently serialize a if it is a top level argument to an RPC call or if the entire object is wrapped in a (which has a perf cost). Open to ideas on how to handle this
I do like the and believe the cost is manageable - we don't send edits is large frequencies and of large sizes. I can take a look at this but it honestly is stretch for June - there is some debt in how workspace edits are represented on the wire and I would take this issue as a reason to clean things up
work started here: I didn't bother with or hoisting the data to the top but instead it uses quick and dirty base64 encoding. I'd suggest we go with that and see how it works out over time.


Question: .focused.conflict-zone .conflict-zone-root { <del> border: 1px dashed var(--vscode-mergeEditor-conflict-unhandledFocused-border); </del> <ins> border: 1px solid var(--vscode-mergeEditor-conflict-unhandledFocused-border); </ins> }

! The highlighting is important to understand which conflict in the bottom view corresponds to which conflicts in result. I think the change of the color of the dashed border is difficult to notice.


Question: async participate(workingCopy: IStoredFileWorkingCopy<IStoredFileWorkingCopyModel>, context: { reason: SaveReason }, progress: IProgress<IProgressStep>, _token: CancellationToken): Promise<void> { if (this.configurationService.getValue<boolean>('files.trimFinalNewlines')) { <del> this.doTrimFinalNewLines(workingCopy, context.reason === SaveReason.AUTO, progress); </del> <ins> await this.doTrimFinalNewLines(workingCopy, context.reason === SaveReason.AUTO, progress); </ins> } }

Re , I was editing the endgame notebook in VS Code repo but it keeps moving the cursor to the next line, which breaks typing. It's very likely an issue with these two settings combined "files.autoSave": "afterDelay" We seems to have the same issue for files in text editor but untitled file doesn't suffer from this as it can't be auto saved. I wonder if we should have some special treatment for notebook cells, as it's very usual to create new cells, which are always empty at the beginning, typing in the first line is making it almost impossible. Maybe we could keep the cursor position for this scenario.


Question: const chatContentHeight = this.widget.contentHeight; const editorHeight = this.editor.getLayoutInfo().height; <del> const contentHeight = Math.min(chatContentHeight, editorHeight * 0.42); </del> <ins> const contentHeight = Math.min(chatContentHeight, Math.max(this.widget.minHeight, editorHeight * 0.42)); </ins> const heightInLines = contentHeight / this.editor.getOption(EditorOption.lineHeight); <del> // console.log('ZONE#_computeHeightInLines', { chatContentHeight, editorHeight, contentHeight, heightInLines }); </del> return heightInLines; }

Just asked hi: ! Expected: ! Version: 1.88.0-insider (user setup) Commit: Date: 2024-03-25T05:49:32.344Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. GitHub Copilot Chat v0.14. (pre-release)
because of
To verify configure have a very wide view port ask AI to change some code make sure the input widget is full width of the zone widget


Question: const chatContentHeight = this.widget.contentHeight; const editorHeight = this.editor.getLayoutInfo().height; <del> const contentHeight = Math.min(chatContentHeight, editorHeight * 0.42); </del> <ins> const contentHeight = Math.min(chatContentHeight, Math.max(this.widget.minHeight, editorHeight * 0.42)); </ins> const heightInLines = contentHeight / this.editor.getOption(EditorOption.lineHeight); <del> // console.log('ZONE#_computeHeightInLines', { chatContentHeight, editorHeight, contentHeight, heightInLines }); </del> return heightInLines; }

cmd+i now cmd+backspace invokes instead of deleting the line in the text editor The ChatWidget is writing its context keys to the editor's ContextKeyService, so we need a scoped CKS at some point, either inside the ChatWidget or outside in the inline widgets
pushing a fix to use a scoped CKS but this does look like debt. Isn't a better fix to reset context keys when hiding/dispose the chat widget?
I don't think those context keys should be applied on the editor at all, they are intended to just be active inside the widget's dom tree.


Question: if (lineHeight === 0) { lineHeight = Math.round(GOLDEN_LINE_HEIGHT_RATIO * fontSize); } <ins> let editorZoomLevelMultiplier = 1 + (browser.getEditorZoomLevel() * 0.1); fontSize *= editorZoomLevelMultiplier; lineHeight *= editorZoomLevelMultiplier; </ins> return InternalEditorOptionsHelper.createInternalEditorOptions( this.getOuterWidth(),

VSCode Version: 1.1.1 OS Version: Windows 7 x64 It would be great if holding the key + spinning the mouse wheel would increase / decrease the VS Code zoom value.
I am not sure we want to zoom the entire UI when you use the mousewhell, I would expect only the editor font to increase. Thereby moving to
yes you are correct.
Didn't this feature used to work, or am I just failing to remember correctly? I was just going to report this as a bug, but maybe it never actually worked. I jump between different computer setups fairly regularly, so maybe I am just not remembering. Anyway, I found this dupe, and didn't want to submit a new issue. Thanks for your efforts By the way, I think I would expect this feature to work the same way that and work. VSCode's UI deviates from many other UIs in that it scales well, so I think I'd expect this to scale the entire UI consistently with the keyboard commands.
If this zooms only the editor, shouldn't it be seperate from ?
I would expect and to zoom only the editor. That behaviour would be consistent with most (all?) other editors and apps. Scaling the entire interface is an accessibility feature IMO, so maybe it doesn't need to use such a commonly used shortcut by default? Beyond Ctrl+Wheel, pinch to zoom should also zoom the editor.
Can this be disabled? I'm constantly accidentally zooming my text to a tiny size when I ctrl-click and accidentally brush my fingers over the trackpad.
This is disabled by default, so you must have enabled it in the past --
Thanks - I came here to vote for this feature, and it turns out I just had to turn it on! Shouldn't this issue be closed?
:+1: Closing since this is implemented. The feature is disabled by default due to numerous issues reported by users using touchpads where we begin to unexpectedly zoom in/zoom out when e.g. using ballistic scrolling and pressing the ctrl/cmd modifier. The root problem is that we cannot differentiate events coming in from a real mouse with a wheel from those coming in from touchpads / trackpads.