Question: } })); <ins> this._configureForScreenReader(); this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(() => this._configureForScreenReader())); this._register(this._configurationService.onDidChangeConfiguration((e) => { if (e.affectedKeys.has(AccessibilityVerbositySettingId.Chat)) { this._configureForScreenReader(); } })); </ins> const editorElement = dom.append(this.element, $('.interactive-result-editor')); this.editor = this._register(scopedInstantiationService.createInstance(CodeEditorWidget, editorElement, { ...getSimpleEditorOptions(),

We should not translate the PHP parser error messages, but we should localize the strings that appear in the Code UI. !


Question: newValue = 'overviewRuler'; } await this._configurationService.updateValue(TerminalSettingId.ShellIntegrationDecorationsEnabled, newValue); <del> }); </del> <ins> })); </ins> quickPick.ok = false; quickPick.show(); }

Quick pick and events are disposables: is a listeners are : , , , , , A few instances of pickers or events not being disposed or registered as disposable: [x] [x] [x] [x] [x] [x] [x] [x] [x] [x] [x] [x] //cc
Thanks for catching these just taught me that there's a better way to use the quick pick API - with and that will avoid this
Interesting, curious to see how that change looks like, I have a lot more places:


Question: return; } <del> // This can happen when focus is in the details-panel and when // arrow keys are pressed to select next/prev items this._setState(State.Open); </del> <ins> if (this._state === State.Details) { // This can happen when focus is in the details-panel and when // arrow keys are pressed to select next/prev items this._setState(State.Open); } </ins> if (!e.elements.length) { if (this._currentSuggestionDetails) {

Type something so that the suggest widget appears Once it appeared and an item is selected, press on the left arrow key The text in the suggest widget disappears There remains a black box with nothing inside where the widget was positioned
hm... doesn't reproduce for me. can you check devtools console for errors?
nvm - I can reproduce running out of sources
regression from
Hi sorry, I just saw your messages. I think I didn't receive the notifications because the tab with this issue was open in chrome, and notifications were not sent. Anyway thanks for looking into this.


Question: } public static collectResultsFromEvent(event: Event<ISerializedSearchProgressItem | ISerializedSearchComplete>): PPromise<ISearchComplete, ISearchProgressItem> { <ins> let listener: IDisposable; </ins> const promise = new PPromise<ISerializedSearchSuccess, ISerializedSearchProgressItem>((c, e, p) => { setTimeout(() => { <del> const listener = event(ev => { </del> <ins> listener = event(ev => { </ins> if (isSerializedSearchComplete(ev)) { if (isSerializedSearchSuccess(ev)) { c(ev);

Open a large workspace Start a text search Press esc See busy process still running is never called here:


Question: export const conflictBorderUnhandledUnfocused = registerColor( 'mergeEditor.conflict.unhandledUnfocused.border', <del> { dark: '#ffa6007a', light: '#ffa6007a', hcDark: '#ffa6007a', hcLight: '#ffa6007a', }, </del> <ins> { dark: '#ffa6007a', light: '#ffa600FF', hcDark: '#ffa6007a', hcLight: '#ffa6007a', }, </ins> localize('mergeEditor.conflict.unhandledUnfocused.border', 'The border color of unhandled unfocused conflicts.') );

I think the border should be thicker and the color should have more contrast. <img width="881" alt="image" src="https://user-"
I think the thicker border is a little too heavy but agree that the light themes in particular suffer from a contrast issue. Do you think it's as much of a problem on the dark themes?
It works much better on the dark themes (maybe also because my code-oss uses dark theme)
Ok, I'll propose some updates this week
Before Light: ! Before Dark: ! After Light: ! After Dark: !


Question: this.proxy = context.getProxy(ExtHostContext.ExtHostProfileContentHandlers); } <del> async $registerProfileContentHandler(id: string, name: string, extensionId: string): Promise<void> { </del> <ins> async $registerProfileContentHandler(id: string, name: string, description: string | undefined, extensionId: string): Promise<void> { </ins> this.registeredHandlers.set(id, this.userDataProfileImportExportService.registerProfileContentHandler(id, { name, <ins> description, </ins> extensionId, saveProfile: async (name: string, content: string, token: CancellationToken) => { const result = await this.proxy.$saveProfile(id, name, content, token);

Testing In the export flow, there's the step to "Export as...". The options are "File" and "Github" <img width="615" alt="image" src="https://user-"I can make the educated guess that I'm not exporting the whole of Github from my VS Code window, but it'd be better to say "Github Gist" instead, or "Export to" instead of "Export as". I prefer the former since it's clear where it's going--otherwise people might assume it creates a repo on their account or something.
It was GitHub Gist before, after feedback I changed to GitHub. I will bring this to UX and see what other think too.
Good feedback. We will also do a user study next week so we will see how users react here. Alternative rendering: "GitHub" and then "gist" as the description a bit to the right - QuickPick should support this.
There was some confusion in the user study when exporting as GitHub. They were expecting that it will be part of a repository. So calling it GitHub Gist might be the way to go.
I think adding as description would be good
!
Lovely, tried it out. Verified.


Question: registry.registerWorkbenchAction(new SyncActionDescriptor(CloseEditorsInOtherGroupsAction, CloseEditorsInOtherGroupsAction.ID, CloseEditorsInOtherGroupsAction.LABEL), 'View: Close Editors in Other Groups', category); registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorAction, SplitEditorAction.ID, SplitEditorAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.US_BACKSLASH }), 'View: Split Editor', category); registry.registerWorkbenchAction(new SyncActionDescriptor(NavigateBetweenGroupsAction, NavigateBetweenGroupsAction.ID, NavigateBetweenGroupsAction.LABEL), 'View: Navigate Between Editor Groups', category); <ins> registry.registerWorkbenchAction(new SyncActionDescriptor(FocusActiveGroupAction, FocusActiveGroupAction.ID, FocusActiveGroupAction.LABEL), 'View: Focus Active Editor Group', category); </ins> registry.registerWorkbenchAction(new SyncActionDescriptor(FocusFirstGroupAction, FocusFirstGroupAction.ID, FocusFirstGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_1 }), 'View: Focus Left Editor Group', category); registry.registerWorkbenchAction(new SyncActionDescriptor(FocusSecondGroupAction, FocusSecondGroupAction.ID, FocusSecondGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_2 }), 'View: Focus Center Editor Group', category); registry.registerWorkbenchAction(new SyncActionDescriptor(FocusThirdGroupAction, FocusThirdGroupAction.ID, FocusThirdGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_3 }), 'View: Focus Right Editor Group', category);

In order to create custom keybindings to toggle focus between the editor and something such as the terminal panel, a command to focus the active/most recently used editor group needs to be . I believe this is the best that can be accomplished currently: Focuses the first group, meaning if the second or third editor groups were focused this would feel wrong: Or this which focused the most recently used editor group but opens the last editor/file in the group: Some context on request:
isn't that as easy as providing a global command that just puts focus into the active editor? E.g. ? PR welcome if you wanna give it a try.
yes, I expect it to be pretty easy.
got a better name than ?
works for me


Question: <del> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.784 8L13 11.217 11.215 13 8.001 9.786 4.785 13 3 11.216l3.214-3.215L3 4.785 4.784 3 8 6.216 11.216 3 13 4.785 9.784 8.001z" fill="#424242"/></svg> </del>  No newline at end of file <ins> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.428 8L12 10.573 10.572 12 8 9.428 5.428 12 4 10.573 6.572 8 4 5.428 5.427 4 8 6.572 10.573 4 12 5.428 9.428 8z" fill="#424242"/></svg> </ins>  No newline at end of file

When tabs are enabled, the close button is slightly larger and unbalances the tab. This button should be different than when tabs are disabled and the close button is moved to the editor toolbar. !


Question: type, extension: extension.description, entrypoint: notebookContribution.entrypoint, <ins> localResourceRoots: notebookContribution.localResourceRoots ?? [], </ins> })); } }

Originally filed here Problem: Notebook kernel pre-load scripts are now defined statically via the contribution However VS Code throws a 401 error when loading resources from within the Jupyter extension, If however we have a dummy script file (in the Jupyter extension directory) that is defined as a in the VS Code API , then all resources from Jupyter extension directory are loaded I.e. using the above API in some way registers the Juptyer extension directory as a supported for scripts, and using the static contribution does not.
I have a work around in the Jupyter extension right now, i've a dummy placeholder script that does nothing,
Can you share steps to reproduce this with the fix in place? Also, does this happen on normal desktop too, or only sshe Unclear why this is not working as we should add preloads to the local resource roots:
Here are the steps Install Python Install VS Code insiders and latest pre-release versions of Jupyter and Python NOTE: Install the pre-release version of Jupyter extension that is 2 days old Add the following setting into vscode Create a python env and install the following dependencies You can use the command to create a directory with Pytohn in a particular workspace folder (optionally you can use Python extension to do this for you) Run the following code in a notebook pointing to the above venv (i.e. select the above venv as a kernel) You might get prompted to enable CDN download, hit cancel for that The widget will not load, network tab in vscode will display a 401 error Note: This is now working in the latest pre-release version of Jupyter extension
I believe the broken version is be but I'm having trouble reproducing this The output either never renders anything (but there is no network error) or renders as an image: ! ! Any other steps?
Not sure which pre-release to use anymore, as the pre-release has changed since Please use the vsixc from this build (check the artifacts for the vsix) here is the Install Python Add the following setting into vscode (reload VSCode) Create a python env and install the following dependencies You can use the command to create a directory with Pytohn in a particular workspace folder (optionally you can use Python extension to do this for you) Run the following code in a notebook pointing to the above venv (i.e.


Question: type, extension: extension.description, entrypoint: notebookContribution.entrypoint, <ins> localResourceRoots: notebookContribution.localResourceRoots ?? [], </ins> })); } }

select the above venv as a kernel) You might get prompted to enable CDN download, hit cancel for that The widget will not load, network tab in vscode will display a 401 error !
I'm still unable to reproduce this issue Are you running the jupyter out of sources by chance or have you patched VS Code/jupyter in some other way? The path to the resource we a trying to load looks weird: . This looks like an extension development path In normal installs, we should load resources from a path that looks more like: If you are able, you can also try and sharing the result of that function compared to the path of the js file we try loading in the webview
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
information was provided
lets you specific an additional set of localResourceRoots that should be allowed when loading the preload. Can you please try adding these for the python static preload contribution? Let me know if fixes the problem!
Thanks , seems to work,
Changes were made upstream in VS Code, marking as verified.


Question: "background": "#DDFFDD", "foreground": "#434343" } <del> } </del> <ins> }, { "name": "JSX: Tags", "scope": [ "punctuation.definition.tag.js", "punctuation.definition.tag.begin.js", "punctuation.definition.tag.end.js" ], "settings": { "foreground": "#91B3E0" } }, { "name": "JSX: InnerText", "scope": "meta.jsx.children.js", "settings": { "foreground": "#333333ff" } } </ins> ], "colors": { "focusBorder": "#A6B39B",

"Add" text in these screenshots. JSX ! HTML !
That's just how it it. All depends on what scopes the differents grammars (html: no scope), jsx: ) use and the decisions of the themes on what to colors. The workround is to use a theme that doesn't color , e.g. the default light theme.
fixed by , thanks


Question: *--------------------------------------------------------------------------------------------*/ import { asArray, coalesce, isNonEmptyArray } from 'vs/base/common/arrays'; <del> import { VSBuffer } from 'vs/base/common/buffer'; </del> <ins> import { encodeBase64, VSBuffer } from 'vs/base/common/buffer'; </ins> import * as htmlContent from 'vs/base/common/htmlContent'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { ResourceSet } from 'vs/base/common/map';

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: private setViewState(state: IViewState): void { this.viewState = state; this.stylesheet.textContent = ` <del> .monaco-editor .dirty-diff-modified,.monaco-editor .dirty-diff-added{border-left-width:${state.width}px;} </del> <ins> .monaco-editor .dirty-diff-modified { background-size: ${state.width}px 4.5px; } .monaco-editor .dirty-diff-modified, .monaco-editor .dirty-diff-added{border-left-width:${state.width}px;} </ins> .monaco-editor .dirty-diff-modified, .monaco-editor .dirty-diff-added, .monaco-editor .dirty-diff-deleted { opacity: ${state.visibility === 'always' ? 1 : 0}; }

<!-- Do Not Delete This! bugreporttemplate --Version: 1.66.0 (system setup) Commit: Date: 2022-03-30T05:50:14.623Z Electron: 17.2.0 Chromium: 98.0.4758.109 16.13.0 V8: 9.8.177.11-electron.0 OS: Windows_NT x64 10.0. New "striped" gutter decorations were in . These decorations do not respect the existing SCM: Diff Decorations Gutter Width setting: Changing the above setting has no effect on the new decorations.
I think this was an oversight and have a PR that can help address this. Thanks!


Question: return; } if (!this._configurationService.getValue(TerminalSettingId.AccessibleViewFocusOnCommandExecution)) { <del> this._onCommandExecutedShowListener.clear(); </del> <ins> this._onDidRunCommand.clear(); </ins> return; <del> } else if (this._onCommandExecutedShowListener.value) { </del> <ins> } else if (this._onDidRunCommand.value) { </ins> return; } const capability = this._instance.capabilities.get(TerminalCapability.CommandDetection)!; <del> this._onCommandExecutedShowListener.value = this._register(capability.onCommandExecuted(() => { </del> <ins> this._onDidRunCommand.value = this._register(capability.onCommandExecuted(() => { </ins> if (this._instance.hasFocus) { this.show(); }

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: return; } if (!this._configurationService.getValue(TerminalSettingId.AccessibleViewFocusOnCommandExecution)) { <del> this._onCommandExecutedShowListener.clear(); </del> <ins> this._onDidRunCommand.clear(); </ins> return; <del> } else if (this._onCommandExecutedShowListener.value) { </del> <ins> } else if (this._onDidRunCommand.value) { </ins> return; } const capability = this._instance.capabilities.get(TerminalCapability.CommandDetection)!; <del> this._onCommandExecutedShowListener.value = this._register(capability.onCommandExecuted(() => { </del> <ins> this._onDidRunCommand.value = this._register(capability.onCommandExecuted(() => { </ins> if (this._instance.hasFocus) { this.show(); }

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: return; } if (!this._configurationService.getValue(TerminalSettingId.AccessibleViewFocusOnCommandExecution)) { <del> this._onCommandExecutedShowListener.clear(); </del> <ins> this._onDidRunCommand.clear(); </ins> return; <del> } else if (this._onCommandExecutedShowListener.value) { </del> <ins> } else if (this._onDidRunCommand.value) { </ins> return; } const capability = this._instance.capabilities.get(TerminalCapability.CommandDetection)!; <del> this._onCommandExecutedShowListener.value = this._register(capability.onCommandExecuted(() => { </del> <ins> this._onDidRunCommand.value = this._register(capability.onCommandExecuted(() => { </ins> if (this._instance.hasFocus) { this.show(); }

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: return; } if (!this._configurationService.getValue(TerminalSettingId.AccessibleViewFocusOnCommandExecution)) { <del> this._onCommandExecutedShowListener.clear(); </del> <ins> this._onDidRunCommand.clear(); </ins> return; <del> } else if (this._onCommandExecutedShowListener.value) { </del> <ins> } else if (this._onDidRunCommand.value) { </ins> return; } const capability = this._instance.capabilities.get(TerminalCapability.CommandDetection)!; <del> this._onCommandExecutedShowListener.value = this._register(capability.onCommandExecuted(() => { </del> <ins> this._onDidRunCommand.value = this._register(capability.onCommandExecuted(() => { </ins> if (this._instance.hasFocus) { this.show(); }

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: *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import type * as vscode from 'vscode'; import { createCancelablePromise, firstParallel, timeout } from '../../../base/common/async.js'; import { IDisposable } from '../../../base/common/lifecycle.js'; </del> <ins> import * as vscode from 'vscode'; import { createCancelablePromise, disposableTimeout, firstParallel, RunOnceScheduler, timeout } from '../../../base/common/async.js'; import { DisposableStore, IDisposable } from '../../../base/common/lifecycle.js'; </ins> import * as platform from '../../../base/common/platform.js'; import * as nls from '../../../nls.js'; import { IExternalTerminalService } from '../../../platform/externalTerminal/common/externalTerminal.js';

My VScode and Cursor are broken since today's update. I can't use 'Run and debug', it doesn't open a terminal for my web app runs. Only runs work. VS Code Version: 1.93.0 OS Version: MacOS 14.6.1 (23G93)
I have the same issue when trying to run and debug my Electron application. When I change to (or remove since is the default value) I can use 'Run and debug' again. I won't get the output of the main process (only the renderer process), but at least it's working for now.
same here, this launch configuration fails to start on macos when using or . it only works if you have or remove the console configuration. VS Code Version: 1.93.1 OS Version: MacOS Sonoma 14.6.1 Demo:
Exactly the same issue with nx and nest, also for some strange reason the breakpoints are marked as attached (red) even when no process is running. Something definitely was broken in the last version, this was working fine a few days ago. Not happening on WSL2.
were there any terminal-relate changes here? The on the debug side didn't change in the last release. (Or is there a better way to do things side from a 1s timeout now that shell integration is smart?)
I'm experiencing the same issues; I can't debug anything in NodeJS/TypeScript. This started happening after I updated to MacOS Sequoia. The only way to make it work is if I set the value to the property in the . However, that's not the desired behavior. After a few hours of testing, I managed to make it work —although it's not the ideal solution— by adding the property with the value . Additionally, I with the value . In summary, I have the following configuration:
Your case probably duplicates
Nothing comes to mind around recent changes to terminal launch, apart from a different path for SI scripts. The better way to run command is to use shell integration is it's available. There's no helper function for it just yet though. do you know what that issue was we were discussing a helper?
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected.


Question: *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import type * as vscode from 'vscode'; import { createCancelablePromise, firstParallel, timeout } from '../../../base/common/async.js'; import { IDisposable } from '../../../base/common/lifecycle.js'; </del> <ins> import * as vscode from 'vscode'; import { createCancelablePromise, disposableTimeout, firstParallel, RunOnceScheduler, timeout } from '../../../base/common/async.js'; import { DisposableStore, IDisposable } from '../../../base/common/lifecycle.js'; </ins> import * as platform from '../../../base/common/platform.js'; import * as nls from '../../../nls.js'; import { IExternalTerminalService } from '../../../platform/externalTerminal/common/externalTerminal.js';

If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Looks like it's solved. Waiting for the official release so Vscode + Cursor will be fixed.
fyi I think cursor is quite a bit behind vscode so I would not expect it to be fixed there soon
Weird, the issue was immediate on both ides a week ago.
Marking as verified due to confirmation.


Question: import { DisposableStore, MutableDisposable } from 'vs/base/common/lifecycle'; import { extname, isEqual } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; <ins> import { generateUuid } from 'vs/base/common/uuid'; </ins> import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; import { localize } from 'vs/nls'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';

Issue Type: <bBug</bSteps to Reproduce: a notebook. In my case, I have a Jupyter notebook (.ipynb). any of the "" or "" or "" or "". happens! These navigation commands work just fine in all other views/panels that I regularly use. VS Code version: Code 1.66.2 (Universal) (, 2022-04-11T07:49:20.994Z) OS version: Darwin arm64 21.4.0 Restricted Mode: No <details<summarySystem Info</summary </detailsExtensions disabled <!-- generated by issue reporter --
this sounds like a real bug to me, the issue is that notebooks do not seem to be rooted below the editor part in the DOM: ! That asks for trouble because we have lots of checks in code to figure out if the editor area has DOM focus or not, e.g.: What is the rationale? I checked with custom editors, and they manage to put the into the DOM hierarchy of the editor part. //cc
We render the notebook out of the grid view as it contains a webview, which can not be re-parented when users drag editors between groups. I basically followed what Custom Editor does did we change this recently? I wonder if it's already safe to do so.
Can confirm that I am also experiencing this. In the meantime, I've found that this kind of works for moving left and right: But there is no or , and this fails when attempting to move to panels. Looking forward to a fix, or if anyone has a workaround.
fyi we no longer use but only , so maybe that changed.
<img width="1918" alt="image" src="https://user-"I found that we are not putting custom editor webviews in the editor grid either.
oh ok, turns out we seem to have logic to still make that work via a special code, looks like notebooks should adopt it as well: And the relevant method using it:
Yes to my knowledge iframes still cannot be reparented. All webviews are rendered as top level elements with absolute positioning to work around this Let me know if you have any questions about using . It should help fix this issue as I believe I've already fixed a similar issue for webviews
This feels like a useful workaround.


Question: import { DisposableStore, MutableDisposable } from 'vs/base/common/lifecycle'; import { extname, isEqual } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; <ins> import { generateUuid } from 'vs/base/common/uuid'; </ins> import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; import { localize } from 'vs/nls'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';

Concerning moving up and down, you can use the and actions ().
works great, it would be great if you can help review
This seems to be working for me now in insiders but feel free to speak up if it's not doing what you expect
Yep, this seems to be fixed in the insiders build. Looking forward to seeing it merged into stable! Thanks everyone!


Question: return super.getActionViewItem(action, options); } <ins> /** * Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable */ private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void { this._disposableStore.clear(); if (dropdownAction instanceof Action) { this._disposableStore.add(dropdownAction); } dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._disposableStore.add(a)); } </ins> private _getDefaultProfileName(): string { let defaultProfileName; try {

I was trying to understand the usage of and the lifecycle of actions created while creating it. I think this originated with the terminal, so looked at the terminal code, but it seems like the problem isn't solved here either. instantiates some Actions which extend Disposable, but they are never tracked or disposed. The ActionViewItems returned from are apparently owned by whatever calls that and get disposed, but not these extra actions that we have to create. So, one solution would be for them to be owned and disposed by although that feels unexpected. But otherwise, there isn't a technically correct way for the code in to know when they should be disposed. Wondering whether I'm missing something or if you have any thoughts.
I spent some time investigating this and the issue is that we use in some places and in others. Only the latter is disposable. This would be a bit involved to rework


Question: } canNavigate(): boolean { <del> return this.widget?.index === -1 || (!!this.model && this.model.changes.length > 1); </del> <ins> return !this.widget || (this.widget?.index === -1) || (!!this.model && this.model.changes.length > 1); </ins> } refresh(): void {

Type: <bBug</bAfter updating to v1.76.0 command "Show Next Change" () no longer works. My file has uncommited changes that are highlighted in a bar to the left of the file, and when I press the shortcut or trigger the command manually from Command Palette I expect my cursor to move to a line with a change and a panel with a diff to appear (as it used to before the update). But nothing happens. ! I tried testing this with all extensions disabled and in VSCode Insiders v1.76.0, same there. VS Code version: Code 1.76.0 (, 2023-03-01T10:22:44.506Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: No <details<summarySystem Info</summary </details<details<summaryExtensions (18)</summaryExtensionVersion ------ overtype0.2.0 pascal-language-basics0.1.10 vscode-django1.10.0 vscode-eslint2.4.0 xml2.5.1 gitlens13.3.1 hoogle-vscode0.0.7 language-haskell3.6.0 isort2022.8.0 python2023.4.0 vscode-pylance2023.3.10 jupyter2023.2. vscode-jupyter-cell-tags0.1.6 vscode-jupyter-slideshow0.1.5 remote-wsl0.76.1 block-travel0.0.2 selectline-statusbar0.0.2 haskero1.3.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Same for me, neither the nor work since upgrading. & seem unaffected, but I want to see the context of changes quickly without having to click the mouse or change switch editors.
I'm having this problem too.
Something seems to be pretty busted in 1.76.0. The Show Next Change (Alt-F3) and Show Previous Change (Shift-Alt-F3) commands do nothing. But worse, the Git: Revert Selected Ranges (Ctrl-K, Ctrl-R) command completely messes up my file.
I believe that this should be fixed in the latest Stable release,, so I will optimistically close the issue.


Question: } canNavigate(): boolean { <del> return this.widget?.index === -1 || (!!this.model && this.model.changes.length > 1); </del> <ins> return !this.widget || (this.widget?.index === -1) || (!!this.model && this.model.changes.length > 1); </ins> } refresh(): void {

Please reopen it in case you are still able to reproduce the problem with the latest Stable release. Thanks!
Unfortunately cannot confirm, the shortcut and the command are still broken both in 1.76.2 and in 1.77.0-insider. I cannot reopen the issue but I hope someone else will.
could you please take a look and see if this could also be related to your changes? Thank you!
Glad to see this fixed; for me however the diff peek that opens seems to always show several lines above the current change. Are there settings that might affect this?
I'm not aware of any settings that would affect this. Do you see this behavior 100% of the time? If not, do you know if there are any specific steps that cause it to happen?
Just found out that it's probably the sticky scroll that's causing this. I disabled all my extensions and still managed to reproduce this. I didn't pay attention at first, but now that I think of it, most of the times it's happened, I've had a bunch of lines showing in the sticky scroll header. I have this in my settings: Tried disabling it (or just lowering the number of lines shown) and now the diff editor shows the difference correctly (albeit a bit towards the bottom). So maybe the diff editor should either account for the number of sticky scroll lines, or not show the sticky header at all.
thanks for following up with your findings. I agree that we shouldn't use stick scroll in the quick diff: there just isn't enough vertical space for it to make sense. I'll disable it.


Question: const target = mouseEvent.target; const stopKey = env.isMacintosh ? 'metaKey' : 'ctrlKey'; <ins> if (!this.altPressed) { if (target.type === MouseTargetType.GUTTER_GLYPH_MARGIN) { this.editor.updateOptions({ hover: { enabled: true } }); this.gutterIsHovered = true; } else if (this.gutterIsHovered) { this.gutterIsHovered = false; this.updateHoverConfiguration(); } } </ins> if (target.type === MouseTargetType.CONTENT_WIDGET && target.detail === DebugHoverWidget.ID && !(<any>mouseEvent.event)[stopKey]) { // mouse moved on top of debug hover widget return; } if (target.type === MouseTargetType.CONTENT_TEXT) { if (target.position && !Position.equals(target.position, this.hoverPosition)) { this.hoverPosition = target.position;

<!-- 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. --I'm currently implementing hit conditions in vscode-php-debug. Xdebug has very limited conditions it supports and we need to signal the user if they typed something unsupported. If a breakpoint has such a condition we try to return that in the field in the setBreakpointResponse/body/breakpoints. There is the implementation line: I noticed that the message is only visible when hovering with the mouse over the unverified breakpoint and only when the DAP isn't in a running state. If the adapter is in a breakpoint, there is no indication why this breakpoint isn't valid. Steps to Reproduce: and build vscode-php-debug from branch . a PHP debug Optionally add under setting. a breakpoint with hit condition "blabla". breakpoint should be unverified, hovering over it should show the message. Messages exchanged until now: launchResponse initializedEvent setBreakpointsRequest (see full message below) setBreakpointsResponse setFunctionBreakpointsRequest setFunctionBreakpointsResponse setExceptionBreakpointsRequest setExceptionBreakpointsResponse configurationDoneRequest configurationDoneResponse threadsRequest threadsResponse () a PHP process that will cause the debug adapter to move into running state. Following messages will be exchanged: ThreadEvent () StoppedEvent () threadsRequest threadsResponse () stackTraceRequest stackTraceResponse threadsRequest threadsResponse () scopesRequest scopesResponse variablesRequest variablesResponse this point hovering over the unverified breakpoint will not show the message.


Question: const target = mouseEvent.target; const stopKey = env.isMacintosh ? 'metaKey' : 'ctrlKey'; <ins> if (!this.altPressed) { if (target.type === MouseTargetType.GUTTER_GLYPH_MARGIN) { this.editor.updateOptions({ hover: { enabled: true } }); this.gutterIsHovered = true; } else if (this.gutterIsHovered) { this.gutterIsHovered = false; this.updateHoverConfiguration(); } } </ins> if (target.type === MouseTargetType.CONTENT_WIDGET && target.detail === DebugHoverWidget.ID && !(<any>mouseEvent.event)[stopKey]) { // mouse moved on top of debug hover widget return; } if (target.type === MouseTargetType.CONTENT_TEXT) { if (target.position && !Position.equals(target.position, this.hoverPosition)) { this.hoverPosition = target.position;

Full breakpoint messages Version: 1.59.0 (user setup) Commit: Date: 2021-08-04T23:13:12.822Z Electron: 13.1.7 Chrome: 91.0.4472.124 14.16.0 V8: 9.1.269.36-electron.0 OS: Windows_NT x64 10.0. Full log of message exchange (DAP and Xdebug)
Maybe a good issue to get introduced to the breakpoint message computation. Thus assigning to Code pointer where we compute breakpoint messages There is probably some check wrong depending on the debug state.
Any luck looking into this? I just want to check if there is something I did wrong before releasing. Btw: Is there any way to enable DAP logging of node/typescript adapter so I can compare messages?
we just did not have a chance to look into this yet. will probably look into it soon, if he is busy I can also help. Yes, it is possible to enable DAP logging for js-debug. Add to your and start debugging. The location of the log file on your disk will be written to the Debug Console. That log file should have the communication.
I totally lost this one, and it's fairly straightforward. This is due to us disabling editor hover in favor of the custom debug hover.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!


Question: } <del> abstract updateOptions(e: NotebookOptionsChangeEvent): void; </del> <ins> updateOptions(e: NotebookOptionsChangeEvent): void { if (this._textEditor && typeof e.readonly === 'boolean') { this._textEditor.updateOptions({ readOnly: e.readonly }); } if (typeof e.readonly === 'boolean') { this._isReadonly = e.readonly; } } </ins> abstract getHeight(lineHeight: number): number; abstract onDeselect(): void; abstract layoutChange(change: CellLayoutChangeEvent, source?: string): void;

Type: <bBug</bDelete a notebook file in a git repo Open it from the SCM view It's editable ;( VS Code version: Code - Insiders 1.94.0-insider (Universal) (, 2024-09-11T05:04:03.124Z) OS version: Darwin arm64 23.6.0 Modes: <!-- generated by issue reporter --
Fixed by


Question: return position; } <del> private static _doHitTest(ctx: HitTestContext, request: BareHitTestRequest): HitTestResult { </del> <ins> public static doHitTest(ctx: HitTestContext, request: BareHitTestRequest): HitTestResult { </ins> let result: HitTestResult = new UnknownHitTestResult(); if (typeof (<any>ctx.viewDomNode.ownerDocument).caretRangeFromPoint === 'function') {

<!-- 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.88.0-insider in Safari OS Version: macOS Steps to Reproduce: Safari open a file with: to the right of any the cursor goes to the beginning of the line not the end This does not repro in stable
I didn't do any changes the last couple of milestones that could (easily) explain this. Can you reproduce this in the monaco editor? If so, can you do a bisect?
I bisected it to this commit: (the commit before it) does not repro the issue. This wasn't in Monaco editor, I just used run code web:
This commit is just a rename refactoring. It is very unlikely it causes this... This does not reproduce in chrome, right?
The bug does not reproduce in Edge on macOS, but it repros in Safari.
Unfortunately, I don't have access to Safari. Can you double check that this is caused by that commit? Can you locally rename the class back to the original name and see if it still happens? It does not make any sense that this commit would cause this behavior only on Safari.
Ok and I paired a bit on this and are really stumped. Bad news: That commit I called out seems to be a red herring. Good news: we can repro in the Monaco Editor Playground.


Question: return position; } <del> private static _doHitTest(ctx: HitTestContext, request: BareHitTestRequest): HitTestResult { </del> <ins> public static doHitTest(ctx: HitTestContext, request: BareHitTestRequest): HitTestResult { </ins> let result: HitTestResult = new UnknownHitTestResult(); if (typeof (<any>ctx.viewDomNode.ownerDocument).caretRangeFromPoint === 'function') {

Here's a side by side of two versions of the dev build: <img width="1680" alt="image" src=""You can see when I click to the right of a line, the older (working) build has the correct position here, while the newer broken build has column 1. Here are the links to these versions: Working: Broken: I believe this is out of both of our depths at this point so I'm passing to you This is a regression so I think it should be fixed before we release (assuming I'm not the only one to repro)
Did a bisect using and it points to
In that case, it is most likely .


Question: showInStatusBar: 'never' | 'always' | 'onFirstSessionStart'; internalConsoleOptions: 'neverOpen' | 'openOnSessionStart' | 'openOnFirstSessionStart'; extensionHostDebugAdapter: boolean; <ins> enableAllHovers: boolean; </ins> } export interface IGlobalConfig {

To be verified with: : : set the new config options start debugging The hover provider should be invoked.


Question: } if (node.hasAttribute('recentlyScrolled')) { <del> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 300) { </del> <ins> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 400) { </ins> // it has been a while since we actually scrolled <del> // if scroll velocity increases, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 2) { </del> <ins> // if scroll velocity increases significantly, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false; <del> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 2) { </del> <ins> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false;

Testing Have the following code in an notebook cell. Run the code Scroll the output. Notice as your scroll reaches the top you can continue scrolling and it will scroll the whole notebook file. This is unexpected and I think no other widget in VS Code behaves this way. I suggest instead the following strategy when scrolling: If a mouse is in the Cell then scrolling it will only scroll that cell. You can not scroll the large notebook while the mouse is in the cell. Same way you can not scroll the Cell with the mouse unless the mouse is in the cell IMHO this is what makes the current experience feel weird.
We don't often have nested scrollable elements in VS Code workbench and also this is how browsers handle nested scrolling. Current behavior feels right to me. I can see the value of scrolling only when the focus is inside/on the output, there is a catch with that though, users need to move cursor to outside of the cell output to scroll the notebook, and the hit area for that is very narrow most of the time.
Thanks for providing more info. But what other UI element scrolls like the notebook does right now - so that you can scroll the element until it hits the end, and then if you continue scrolling that the outer element starts scrolling? This really felt unnatural to me, but I might have missed this pattern in other parts of the workbench. Or what do other Notebooks products do in this case?
the peek view actually behaves this way. That's the only other nested scrollable element that I know of.
Thanks! If I am the only user that it complaining feel free to close this one as designed :)
I tried using notebook in VSCode again last week, and came to GitHub to open this exact issue. I feel this scroll is extremely unintuitive. Here's an example. A cell is outputting more lines than , so we're currently viewing it's last line. I want to scroll to top. I speed scroll up, but this reaches the top and keeps scrolling the notebook, so now I'm all the way up. I have to scroll back down to my cell. If I go fast, I might miss it. If I go slowly, some other cell's output might catch my scroll and scroll that to bottom, before the notebook scrolls again. Same happens to my cell.


Question: } if (node.hasAttribute('recentlyScrolled')) { <del> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 300) { </del> <ins> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 400) { </ins> // it has been a while since we actually scrolled <del> // if scroll velocity increases, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 2) { </del> <ins> // if scroll velocity increases significantly, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false; <del> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 2) { </del> <ins> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false;

I need to be frustratingly precise to scroll this output to the top. Here's a recording to illustrate (I hope you can see it, recorded on MacOS, encoded as AV1; can add YT link if not viewable here): It took me 15 seconds to manage to get that top. And I knew exactly what I wanted to achieve, for the sake of the video. Now here's the same experience in native Jupyter Notebook (exact same notebook and cell). First, I can easily toggle the output scrolling. If untoggled, the output scrolls natively with the notebook, and since it expands downwards, without the notebook jumping, I can immediately see the top, which is right next to the cell. Then I toggle the scrolling again, to illustrate the behaviour compared to VSCode. I initiate scrolling inside the output area, and so only that area is scrolled. No matter the speed, or direction, I can easily reach the top or bottom as many times as I need, without losing context of my notebook. If I do want to scroll the notebook, I need to scroll outside the output area. This is easy because the cell does not take the whole width. This is in relation to what said above: Yes, but the cell does not need to take the complete visible width. In native notebook, cell's width is limited, and there's still plenty of space for code. But even if the cell does take the entire width, the user can initiate the scrolling outside the output area, i.e. over a cell. In this case, it scrolls the notebook, and never the outputs. The outputs do not steal the scrolling from the notebook, like it happens in VSCode. So: scroll initiated on cell or outside the cells area -scrolls notebook only, never output scroll initated in scrollable output area -scrolls only that output area, never the notebook
should we reopen this? What do you think?
sure, that's a reasonable request. It would be inconsistent with how the peek view scroll works, but the possibility for many scrollable regions makes these cases more noticeable in notebooks. - one thing that might help - you can toggle output scrollability per output in vscode as well with , by default
I have the same issue.


Question: } if (node.hasAttribute('recentlyScrolled')) { <del> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 300) { </del> <ins> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 400) { </ins> // it has been a while since we actually scrolled <del> // if scroll velocity increases, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 2) { </del> <ins> // if scroll velocity increases significantly, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false; <del> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 2) { </del> <ins> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false;

The usability of the scrollable element suffers greatly due to the current crazy behavior - when the scrolling inertia reaches the end of the scrollable output and scrolls the whole notebook! If different users want different behavior, this can be an option in the settings, e.g.: current behavior behavior like in the native Jupyter Notebook (in the video above), i.e. the notebook never scrolls if the pointer is inside the scrollable element there may be a 3rd option: the scroll that reaches the end of scrollable area doesn't scroll the notebook, but the subsequent scrolls in the same direction (even if the mouse pointer is inside the scrollable area) - scroll the notebook
for verification, please check with a mouse wheel and scrolling with a trackpad, since they behave quite differently. Hitting the boundary of the inner scrollable region will prevent further scrolling for that same scroll action. After a short pause you should then be able to scroll the outer region since the inner region can't be scrolled any further. (similar behavior to a browser)
Verified on trackpad. Still have to verify with a mouse wheel.
verified on mouse! there was a pause/delay, but wonder if there should be a larger delay - I find that sometimes I spam scroll and it moved up a little quicker than I anticipated. if it matches browser tho, should be all good ~
hello , thank you a lot for the work on this issue! I hate to say this, but I think it's not solved: It looks like only a certain "scroll length" is ignored, and the rest of the scroll inertia is still applied. Here I do: one fast scroll (as you see, the notebook moves) then I scroll back down then one fast (a bit slower) scroll (the notebook moves) Only if the scroll isn't fast enough the "scroll length" will be small enough to be completely ignored. <br /Here I do: one long scroll - all the way until the end of the video: <br /The behavior in the native jupyter notebook is certainly different. Here I do: one fast scroll - different than in VSCode (the notebook doesn't move) one long scroll- different than in VSCode (the notebook doesn't move) one after-scroll (the notebook moves as expected) Could this issue please be re-opened?
which version of vscode was this on?


Question: } if (node.hasAttribute('recentlyScrolled')) { <del> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 300) { </del> <ins> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 400) { </ins> // it has been a while since we actually scrolled <del> // if scroll velocity increases, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 2) { </del> <ins> // if scroll velocity increases significantly, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false; <del> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 2) { </del> <ins> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false;

Version: 1.88.0 (Universal) Commit: Date: 2024-04-03T13:28:18.899Z (1 day ago) Electron: 28.2.8 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Darwin arm64 23.3.0
ok, yeah. looks like I broke the behavior with a related bugfix
Version: 1.89.0 - still isn't completely fixed: If I scroll hard enough, the notebook scrolls.


Question: group: 'navigation', isHiddenByDefault: true, }, <del> keybinding: { </del> <ins> keybinding: [{ </ins> primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Enter, mac: { primary: KeyMod.WinCtrl | KeyCode.Enter, }, weight: KeybindingWeight.EditorContrib, <del> when: CONTEXT_IN_CHAT_SESSION } </del> <ins> when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()), }, { primary: KeyMod.CtrlCmd | KeyCode.Slash, mac: { primary: KeyMod.WinCtrl | KeyCode.Slash }, weight: KeybindingWeight.WorkbenchContrib, when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_ACCESSIBILITY_MODE_ENABLED), }] </ins> }); }

is used in the inline chat widget to accept a suggestion is used in the accessible view to accept an inline completion suggestion There is no keybinding to insert the current chat code block suggestion at the current cursor location is used to submit a comment from within a comment widget suggested aligning these. what do you think of adding a default keybinding of for inserting the current chat code block at the current cursor location? I will change the inline completion suggestion acceptance in the accessible view to .
-- Did you mean ? I think can be used for submission. There is no issue with this key. Submitting pull request, for example, is also . However, when Accepting something, we may want to use for the consistency.
I was suggesting we align all of these to use rather than .
I don't think people will be in favor of to accept in the inline chat widget as that would break muscle memory.
-- FYI, the following keybinding is also :
I've refined the original content of this issue to reflect the ask. We shall see what people say.
Here is my summary: for submitting actions. Evidence: GitHub Pull Request uses this keybinding. Also, "Report Issue" under Help menu also adopts as its default keybinding for submitting issue content. for accepting or inserting suggestions. Evidence: already uses this keybinding. Also, Accessible View adapted this for accepting the current inline suggestion.
I think that's not a good keybinding and that Ctrl+Enter is way better because it's easier to reach, e.g on a DE/CH keyboard you need to press Shift+7 to get /
I am then not against unifying all the listed keybindings in favor of .
To verify: Focus an editor Enable screen reader mode Focus a chat code block Use and verify that the code is inserted in the editor at the current cursor position


Question: @IClipboardService private readonly _clipboardService: IClipboardService, @ISuggestMemoryService private readonly _suggestMemoryService: ISuggestMemoryService, @ICodeEditorService private readonly _editorService: ICodeEditorService, <del> ) { } </del> <ins> ) { super(); this._store.add(_languageFeatureService.inlineCompletionsProvider.register('*', this)); } </ins> async provideInlineCompletions(model: ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): Promise<InlineCompletionResults | undefined> {

<!-- 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: Windows 11 OS Version: 1.75.1 Steps to Reproduce: Using the following settings: ! ! a typescript file within a method/function following gets output (might have to navigate through some of the suggestions) even though snippets are off: !
Thanks for the patience. I cannot reproduce, please share more of your settings that might influence this. Also share data in a copy-paste friendly way (text over images)
Here are the settings that I am using to reproduce (all extensions disabled ): Once typing and going to the 3rd suggestion, I get this as a suggestion: !
Thanks for clarifying, looks like we aren't passing the filter here:
I can't figure out how to get that ghost text to show up for suggestions to verify this. I've never seen that ghost text for anything but copilot completions Do I need a suggestion provider extension?
You are right. I made a refactoring after this fix and that broke this feature Thanks for the diligence on this one!
To verify, use the steps from Make sure no snippets completions are ghost-texted with and that they are when the setting is set accordingly
I still cannot get snippet completions to show up
You need to say what you are trying because I do see them working just fine <img width="922" alt="Screenshot 2024-01-26 at 18 14 32" src=""
This works correctly for me now, no snippets with , and they do show up without it.
Bang on.


Question: @IClipboardService private readonly _clipboardService: IClipboardService, @ISuggestMemoryService private readonly _suggestMemoryService: ISuggestMemoryService, @ICodeEditorService private readonly _editorService: ICodeEditorService, <del> ) { } </del> <ins> ) { super(); this._store.add(_languageFeatureService.inlineCompletionsProvider.register('*', this)); } </ins> async provideInlineCompletions(model: ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): Promise<InlineCompletionResults | undefined> {

The whole point is that the -setting is honored also for ghost suggestions
: <img width="1792" alt="Screenshot 2024-01-26 at 9 19 47 AM" src=""
this is about ghost text, please see and the comment linked from there
there was a syntax error in my file, so the settings did not get applied. Now it works


Question: }; function getTarget() { <del> return document.getElementById('_target'); </del> <ins> return document.getElementById('_target');; </ins> }; const ipcRenderer = require('electron').ipcRenderer;

I notice that when I edit our 1.9 release notes, the markdown preview seems to jump up and down all the time there is a change. Compared to 1.8 stable, this seemed to not happen.
Better, I still see flickering that it jumps up and down a little bit and the decoration to the left to show me the current edited location is also flickering. let me know if I should open a separate issue on that or if you think that is fixable.
The flicker should now be better than VSCode 1.8, but we can still do better. I've noticed the same sort of slight flicker on images in particular and on the current paragraph indicator as you noted. Please open another, lower priority issue so that we can track further improvements Thanks


Question: const isServerless = platform.isWeb && !accessor.get(IWorkbenchEnvironmentService).remoteAuthority; return ` ## Interactive Editor Playground <del> The core editor in VS Code is packed with features.  This page highlights a number of them and lets you interactively try them out through the use of a number of embedded editors.  For full details on the editor features for VS Code and more head over to our [documentation](command:workbench.action.openDocumentationUrl). </del> <ins> The core editor in VS Code is packed with features.  This page highlights a number of them and lets you interactively try them out through the use of a number of embedded editors.  For full details on the editor features for VS Code and more head over to our [documentation](https://code.visualstudio.com/docs). </ins> * [Multi-cursor Editing](#multi-cursor-editing) - block selection, select all occurrences, add additional cursors and more. * [IntelliSense](#intellisense) - get code assistance and parameter suggestions for your code and external modules.

<!-- 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. --- VS Code Version: Version: 1.93.0-insider (user setup) Commit: Date: 2024-09-04T13:13:15.344Z Electron: 30.4.0 ElectronBuildId: Chromium: 124.0.6367.243 20.15.1 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0. OS Version: Windows 11 Insiders Steps to Reproduce: in the first paragraph doesn't appear to be a link, which I was surprised about: ! I hover over it, I see it's supposed to be a link, but clicking on it does nothing: ! The other docs links at the bottom of the playground appear correctly as links and do open when I click on them: !
This seems related to the bookmark issue we had in the release notes. The other bookmark links in the interactive playground don't work either.
Fixed the toc links. Need another fix for the documentation link too (which use command uris)
The Editor Playground is not showing at all anymore in the latest insiders. When selecting the Editor Playground menu item, a black editor comes up.
hm working from oss builds. Insiders, it seems like the error is:
Actually unrelated. Seems like a duplicate of and fixed by


Question: } } <del> private doGetChildren(node: IAsyncDataTreeNode<TInput, T>): Promise<Iterable<T>> { </del> <ins> private doGetChildren(node: IAsyncDataTreeNode<TInput, T>): Promise<Iterable<T>> | Iterable<T> { </ins> let result = this.refreshPromises.get(node); if (result) { return result; } <del> result = createCancelablePromise(async () => { const children = await this.dataSource.getChildren(node.element!); </del> <ins> const children = this.dataSource.getChildren(node.element!); if (isIterable(children)) { </ins> return this.processChildren(children); <del> }); this.refreshPromises.set(node, result); return result.finally(() => { this.refreshPromises.delete(node); }); </del> <ins> } else { result = createCancelablePromise(async () => this.processChildren(await children)); this.refreshPromises.set(node, result); return result.finally(() => { this.refreshPromises.delete(node); }); } </ins> } private _onDidChangeCollapseState({ node, deep }: ICollapseStateChangeEvent<IAsyncDataTreeNode<TInput, T> | null, any>): void {

takes much longer to render with file nesting enabled. Impact is lessened by disabling file nest auto-expansions. is not significantly slower to render with nesting, though I have not collected proper numbers yet.
closedWith
takes a comparable amount of time to render with file nesting enabled, though there is a perceptible delay for both. However, I do also notice that the window becomes intermittently unresponsive after expanding , e.g. when scrolling in the explorer. Is this known?
Yeah, same thing happens with nesting disabled. There's an open issue somewhere for ways to reduce that (like streaming the dir contents).


Question: const originalHeaderOpen = md.renderer.rules.heading_open; md.renderer.rules.heading_open = (tokens: MarkdownItToken[], idx: number, options, env, self) => { const title = tokens[idx + 1].children!.reduce<string>((acc, t) => acc + t.content, ''); <del> let slug = slugFromHeading(title); </del> <ins> let slug = slugify(title); </ins> if (slugCounter.has(slug)) { const count = slugCounter.get(slug)!; slugCounter.set(slug, count + 1); <del> slug = slugFromHeading(slug + '-' + (count + 1)); </del> <ins> slug = slugify(slug + '-' + (count + 1)); </ins> } else { slugCounter.set(slug, 0); }

[X] Notebooks (.ipynb files) [ ] Interactive Window and/or Cell Scripts (.py files with #%% markers) Hello. As the title says, I can't make a internal link in a jupyter notebook in vscode if the cell's title starts with a capital letter, contains an underscore or contains a space, as you can see on the images. Also, on the sole option that it works, non-capital letter header, when clicked it brings me to the bottom of the notebook, and the focus is not brought on the right header itself. Initial tests: ! The test headers: ! 64.5 v2022.2. Python v3.8.5 Python Extension: v2022.2. No response Local
This is actually handled by VS code core (and not the extension). I've included a demo notebook that repros the problem .
In the demo notebook, the href jumps all work ! But none of the header jumps do unless you rewrite them to be only lowercase. All of the links work fine when running in 'jupyter'.
Vscode this notebook is still with all the bugs. Even on the links that work, they jump me to the very bottom of the notebook, not to cell 2, cell 3 or cell 4. Also Section jump and Section with space jump still doesn't work at all. I'm using portable Vscode btw, but I think this doesn't make any difference since when I was using the regular one this bug still existed. Even now, about 2 years later (that I recall) it still goes on on notebooks in Vscode. I can record a GIF if you need. I assure no weird magic was done on my vscode, just regular installation and all... and I can confirm that this issue still occurred years ago on my other PC too.
Does this reproduce in the ?
It did for me.
Will this issue be addressed on any new version of Vscode? I've headed to version 1.67 and to "April+2022+Recovery+2"+is%3Aclosed and found no mentions of this issue. Perhaps on the next, if it would be implemented/fixed at all? Thanks anyway! :)
This issue was fixed in 1.68 (the May 2022 milestone)
got a look at and pull request ( ) doesn't appear there.


Question: const originalHeaderOpen = md.renderer.rules.heading_open; md.renderer.rules.heading_open = (tokens: MarkdownItToken[], idx: number, options, env, self) => { const title = tokens[idx + 1].children!.reduce<string>((acc, t) => acc + t.content, ''); <del> let slug = slugFromHeading(title); </del> <ins> let slug = slugify(title); </ins> if (slugCounter.has(slug)) { const count = slugCounter.get(slug)!; slugCounter.set(slug, count + 1); <del> slug = slugFromHeading(slug + '-' + (count + 1)); </del> <ins> slug = slugify(slug + '-' + (count + 1)); </ins> } else { slugCounter.set(slug, 0); }

Will it be ? Thanks :)
Did you test it?
Yes! everything was fixed. Capital letters, underscore and space headers now work like a charm. I was just asking if this specific commit ( ) will be listed on the update website. I don't know how it works, if minor fixes won't get listed or something like that. I just wanted to show to some friends that somehow I've contributed to Vscode with my bug report Anyway, everything buggy was fixed. This issue may be closed anytime.


Question: }; } async function main(arch = process.arch) { <del> const version = product.electronRepository ? '22.4.5' : util.getElectronVersion(); </del> <ins> const version = product.electronRepository ? '22.4.6' : util.getElectronVersion(); </ins> const electronPath = path.join(root, '.build', 'electron'); const versionFile = path.join(electronPath, 'version'); const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;

This works on web e.g. but does not work in desktop, either with a desktop git clone or with RemoteHub. The last time this happened it was due to a regression in the list of enabled codecs for our Electron builds.
Sorry for the breakage, the changes from has not been to Electron = 22 versions yet. It will be addressed in new builds this week.
Addressed in
Reopening because of


Question: import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> import { INotificationService } from 'vs/platform/notification/common/notification'; type RunnableCommand = string | { command: string; args: any[] };

Testing edit keybindings leave out args or have an empty array of commands trigger the command, nothing happens. This is expected but I wonder if an information/guiding message should be shown that the keybinding needs some commands to be useful?


Question: "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "typescript": { <del> "version": "2.1.5-insiders.20161229", "from": "typescript@2.1.5-insiders.20161229", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.1.5-insiders.20161229.tgz" </del> <ins> "version": "2.1.5", "from": "typescript@2.1.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.1.5.tgz" </ins> }, "vscode-extension-telemetry": { "version": "0.0.5",

Pick up final TS 2.1.5 for the bundled version of TypeScript. Insiders version of TS 2.1.5 is already in VSCode 1.9 insiders


Question: return 99; }; <del> // Assign priority (current > remote > base > color > name) const ref1Priority = getHistoryItemRefPriority(ref1); const ref2Priority = getHistoryItemRefPriority(ref2); </del> <ins> // Assign order (current > remote > base > color) const ref1Order = getHistoryItemRefOrder(ref1); const ref2Order = getHistoryItemRefOrder(ref2); </ins> <del> if (ref1Priority !== ref2Priority) { return ref1Priority - ref2Priority; } else { return ref1.name.localeCompare(ref2.name); } </del> <ins> return ref1Order - ref2Order; </ins> }

Testing I wonder how well it scales to show multiple tag icons, why not find a new icon that resembles multiple tags: !
I like that. Adding as that would require a new Codicon...
!
Or just show one tag in the row, but show all of them on hover like you do now.
How about showing one badge pert type (ex: branch, remote branch, tag) and a number indicating how many they are. That way there is no need create new icons that would cause further confusion.
I am actually not entirely sure what value there is to distinguish 1 tag from N tags? I would just show 1 icon if there is any tag.
Seems reasonable. Let's start with that and see how things go.


Question: import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { IDisposable } from 'vs/base/common/lifecycle'; import { IExtensionIdWithVersion, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> @extHostNamedCustomer(MainContext.MainThreadStorage) export class MainThreadStorage implements MainThreadStorageShape {

<!-- Please search existing issues to avoid creating duplicates. --- VS Code version: 1.59.1 Extension version (available under the Extensions sidebar): v2021.8. OS and version: Linux x64 5.13.11-1-MANJARO Python version (& distribution if applicable, e.g. Anaconda): 3.9 Type of virtual environment used (N/A ...): virtualenvwrapper Relevant/affected Python-related VS Code extensions and their versions: pylance v2021.8.3, jupyter v2021.8., Visual Studio IntelliCode v1.2.14 Value of the setting: Pylance from the VS Code marketplace to see if that fixes your issue] Extension loads successfuly Extension does not load, console reports "Unexpected token ' in JSON at position " [NOTE: Self-contained, minimal reproducing code samples are extremely helpful and will expedite addressing your issue] the extension by clicking a .py file <!-- Note: If you think a GIF of what is happening would be helpful, consider tools like , or . --<details<summaryOutput for <codePython</codein the <codeOutput</codepanel (<codeView</code→<codeOutput</code, change the drop-down the upper-right of the <codeOutput</codepanel to <codePython</code) </summary<p</p</details
Looks like you might have a bad update. Do the following to remove stale versions of the extension: Python extension (if you have pylance uninstall it first). all instances of VS Code. to, (on windows) or on Linux/Mac. any folder with the name starting with VS Code, and install Python extension (also pylance if you uninstalled it in step 1).
I followed all steps, but nothing changed. should I try to install older version of python ext?
Hi Can you try installing an older version of the Python extension, and if it doesn't work can you try a different version of VS Code (either an old one or the Insiders build)?
I've installed python extension , jupyter and no pylance. here's the log: As you said I'm going to install older version of vscode
Hi Did you try installing an older version of VS Code?
FYI - This looks like some JSON stored via the became corrupt.


Question: import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { IDisposable } from 'vs/base/common/lifecycle'; import { IExtensionIdWithVersion, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> @extHostNamedCustomer(MainContext.MainThreadStorage) export class MainThreadStorage implements MainThreadStorageShape {

The JSON is written a few lines lower, so it is unexpected that the value is corrupted. This might indicate some kind of bug in the storage layer. I don't remember writing that code, did you perhaps write that? Do you think it is so important such to fail extension activation when the JSON is corrupt, or should we catch that exception and return ?
I would suggest to be more resilient in extension activation as you suggest and fallback to an empty object here if any error rises from but log it as error: This is the first time I hear about a problem with persisting data into SQLite. However, seeing makes me think that this is not an officially supported Linux distribution.
curious if you could share the following 2 files with me (via e-mail is fine: find it on ). Steps: open the VSCode window where this issue happens View Command Palette =Log Storage Database Contents Help Toggle Dev Tools Find the 2 paths for the DBs send both files to me
I can still see the original issue in vscode-insiders v1.61.0-insider
whats the exact version you are on? And is it the issue that the extension fails to activate?
Version: 1.61.0-insider (user setup) Commit: Date: 2021-09-16T08:31:28.161Z Electron: 13.4.0 Chrome: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: WindowsNT x64 10.0. python extension: v2021.9. Error 2021-09-16 17:51:12: Error discovering pytest tests: [SyntaxError: Unexpected token S in JSON at position at (<anonymous) at a.runTestDiscovery (PATH.vscode-insidersextensionsms-outclient) at runMicrotasks (<anonymous) at processTicksAndRejections () at async (index 0) at async _.refreshTestData (PATH.vscode-insidersextensionsms-outclient) at async v.refreshTestDataInternal (PATH.vscode-insidersextensionsms-outclient)] { stdout: '[{"rootid": ".", "root": "...
I fixed the issue as reported in that extensions fail to activate when the contents in storage fail to get parsed.


Question: import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { IDisposable } from 'vs/base/common/lifecycle'; import { IExtensionIdWithVersion, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> @extHostNamedCustomer(MainContext.MainThreadStorage) export class MainThreadStorage implements MainThreadStorageShape {

What you report here seems different to me. Looks like the python extension is calling on something that is not valid JSON? Have you asked the Python extension what this could be?
I see, I'll create a new issue. thanks


Question: import { MANAGE_TRUST_COMMAND_ID, WorkspaceTrustContext } from 'vs/workbench/contrib/workspace/common/workspace'; import { IQuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiff'; import { QuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiffService'; <del> import { getActiveElement } from 'vs/base/browser/dom'; </del> <ins> import { getActiveElement, isActiveElement } from 'vs/base/browser/dom'; </ins> import { SCMWorkingSetController } from 'vs/workbench/contrib/scm/browser/workingSet'; import { IViewsService } from 'vs/workbench/services/views/common/viewsService'; <ins> import { IListService, WorkbenchList } from 'vs/platform/list/browser/listService'; import { isSCMRepository } from 'vs/workbench/contrib/scm/browser/util'; </ins> ModesRegistry.registerLanguage({ id: 'scminput',

Type: <bBug</bIn the "Source Control Repositories" view, if you have several repos selected, and then right click on one of them and choose "Open in Integrated Terminal", it will open the terminal in the directory for the first selected repo regardless of which repo you right clicked on. However if you right click on a repo under "Source Control" then it will open the terminal correctly. VS Code version: Code 1.90.2 (, 2024-06-18T22:33:48.698Z) OS version: Linux x64 6.6.15-2rodete2-amd64 Modes: Remote OS version: Linux x64 6.6.15-2rodete2-amd64 <details<summarySystem Info</summary </details<details<summaryExtensions (22)</summaryExtensionVersion ------ jupyter-keymap1.1.2 remote-containers0.375.1 remote-ssh0.112.0 remote-ssh-edit0.86.0 vscode-remote-extensionpack0.25.0 remote-explorer0.4.3 remote-server1.5.2 rewrap1.16.3 githistory0.6.20 gitlens15.1.0 go0.41.4 debugpy2024.6.0 isort2023.10.1 pylint2023.10.1 python2024.10.0 jupyter2024.5.0 jupyter-keymap1.1.2 jupyter-renderers1.0.18 vscode-jupyter-cell-tags0.1.9 vscode-jupyter-slideshow0.1.6 preview-vscode2.3.7 code-spell-checker3.0.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.91.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
Is that option being contributed by an extension? Please use the command to investigate.
The menu option is there even with no extensions loaded by "Start Extension Bisect"
<!-- UNABLETOLOCATECOMMITMESSAGE repo --Issue marked as unreleased but unable to locate closing commit in repo history.


Question: import { MANAGE_TRUST_COMMAND_ID, WorkspaceTrustContext } from 'vs/workbench/contrib/workspace/common/workspace'; import { IQuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiff'; import { QuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiffService'; <del> import { getActiveElement } from 'vs/base/browser/dom'; </del> <ins> import { getActiveElement, isActiveElement } from 'vs/base/browser/dom'; </ins> import { SCMWorkingSetController } from 'vs/workbench/contrib/scm/browser/workingSet'; import { IViewsService } from 'vs/workbench/services/views/common/viewsService'; <ins> import { IListService, WorkbenchList } from 'vs/platform/list/browser/listService'; import { isSCMRepository } from 'vs/workbench/contrib/scm/browser/util'; </ins> ModesRegistry.registerLanguage({ id: 'scminput',

If this was closed in a separate repo you can add the label directly, or comment .
<!-- UNABLETOLOCATECOMMITMESSAGE --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased


Question: return this.configurationService.getValue<boolean>('notebook.diff.ignoreOutputs') || !!(this.mainDocumentTextModel?.transientOptions.transientOutputs); } <ins> private get ignoreMetadata() { return this.configurationService.getValue<boolean>('notebook.diff.ignoreMetadata'); } </ins> private _sourceEditorViewState: editorCommon.ICodeEditorViewState | editorCommon.IDiffEditorViewState | null = null; private _outputEditorViewState: editorCommon.ICodeEditorViewState | editorCommon.IDiffEditorViewState | null = null; private _metadataEditorViewState: editorCommon.ICodeEditorViewState | editorCommon.IDiffEditorViewState | null = null;

Add the following settings into user settings Create a Notebook (e.g. github issues notebook) Add a few cells, run (its ok if there are failures) Save and stage the notebook Make changes to at least one of the cells View differences using Notebook Diff view You'll notice that the screen flickers, This is because the heights of the cells are computed by taking the height of output & metadata sections After a few ms, these are hidden and the cells move up a few pixes.
hit this and wasn't able to test:
Should be available for testing with next Insiders, thanks1


Question: state: getIEditor(activeEditorPane.getControl())?.saveViewState() ?? undefined, }; } } /**

Steps to Reproduce: recently opened ("Clear Editor History") quick open and search for a file (such as a TS file) to see symbols (notice how the file opens in the background) to a symbol = when you open quick open again, the file is not part of the recently opened section //cc this is a regression from the transient work we did


Question: private async pickContinueEditSessionDestination(): Promise<URI | undefined> { const quickPick = this.quickInputService.createQuickPick<ContinueEditSessionItem>(); <del> quickPick.title = localize('continueEditSessionPick.title', 'Continue Edit Session...'); </del> <ins> const workspaceContext = this.contextService.getWorkbenchState() === WorkbenchState.FOLDER ? this.contextService.getWorkspace().folders[0].name : this.contextService.getWorkspace().folders.map((folder) => folder.name).join(', '); quickPick.title = localize('continueEditSessionPick.title', "Continue {0} on", `'${workspaceContext}'`); </ins> quickPick.placeholder = localize('continueEditSessionPick.placeholder', 'Choose how you would like to continue working'); quickPick.items = this.createPickItems();

! should align more with <img width="672" alt="image" src="https://user-"


Question: if (compressedNode) { for (let i = 0; i < compressedNode.elements.length; i++) { const id = getId(compressedNode.elements[i].element as T); <ins> const element = compressedNode.elements[compressedNode.elements.length - 1].element as T; </ins> <del> if (oldSelection.has(id)) { selection.push(compressedNode.elements[compressedNode.elements.length - 1].element as T); </del> <ins> // github.com/microsoft/vscode/issues/85938 if (oldSelection.has(id) && selection.indexOf(element) === -1) { selection.push(element); </ins> didChangeSelection = true; } <del> if (oldFocus.has(id)) { focus.push(compressedNode.elements[compressedNode.elements.length - 1].element as T); </del> <ins> if (oldFocus.has(id) && focus.indexOf(element) === -1) { focus.push(element); </ins> didChangeFocus = true; } }

Hei! Found issue with folder delete operation. The point is, when you delete folder (first time), no matter how, via mouse or keyboard combination, then select another folder and try to delete it, you will get popup message saying "Cannot read property 'isDirectory' of undefined" Only when you select another folder again (second time), delete operation will be successful. Tried several times with same results. And as i remember, this bug i found some time ago, so it is not introduced exactly in last insiders build. Visual Code Insiders 1.41.0 from 2019-12-02, commit: macOS 10.15.1
thanks for filling this great issue. You should have the fix tommorrow in vscode insiders
the problem was that it was happening that the tree would sometimes set the trait on one element two times. In this particular case Selection would be set on the element A and A. So if I say tree.getSelection I would get the same item twice. Instead of the array with one item. I decided to fix this with a workaround on the trait level. Repro steps: set compact tree to true. Go up and down with the focus always ending up with the focus on the one select item. Put a conditional breakpoint tree will try to set the double selection trait
This seems to be coming from Where the selection would already contain the folder, but as oldSelection/oldFocus also has the id, it will push the same object to the selection again. You could also fix it there by doing some sort of duplicate filtering or selection.indexOf to prevent duplciates being I could reproduce it consistently by: Putting a breakpoint there Creating a new folder Focusing on that folder Result: The function ends up setting selection to contain the same object twice.
great pointer. I think you are right, give me a sec and I will push a better fix. Thanks a lot!
I was planning to submit something along the lines of But I'm not sure if this is considered good code, it might be better to create a set of Ids (like oldSelection) does, but as selection is of type T, I could not access the id parameter.
If you would like to create a PR you are more than welcome to! It would be great if you could do it today since we are wrapping up the milestone and we need this fix asap.


Question: if (compressedNode) { for (let i = 0; i < compressedNode.elements.length; i++) { const id = getId(compressedNode.elements[i].element as T); <ins> const element = compressedNode.elements[compressedNode.elements.length - 1].element as T; </ins> <del> if (oldSelection.has(id)) { selection.push(compressedNode.elements[compressedNode.elements.length - 1].element as T); </del> <ins> // github.com/microsoft/vscode/issues/85938 if (oldSelection.has(id) && selection.indexOf(element) === -1) { selection.push(element); </ins> didChangeSelection = true; } <del> if (oldFocus.has(id)) { focus.push(compressedNode.elements[compressedNode.elements.length - 1].element as T); </del> <ins> if (oldFocus.has(id) && focus.indexOf(element) === -1) { focus.push(element); </ins> didChangeFocus = true; } }

Just make sure to remove my wokraound introduced with Thanks! And make sure to ping me on the PR


Question: const outDir = path.join(outputRoot, 'media'); async function build() { <del> fs.copyFileSync( path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.css'), path.join(outDir, 'codicon.css')); fs.copyFileSync( path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.ttf'), path.join(outDir, 'codicon.ttf')); </del> await esbuild.build({ <del> entryPoints: [ path.join(srcDir, 'index.ts') ], </del> <ins> entryPoints: { 'index': path.join(srcDir, 'index.ts'), 'codicon': path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.css'), }, loader: { '.ttf': 'dataurl', }, </ins> bundle: true, minify: true, sourcemap: false,

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: stable and from sources Steps to Reproduce: server vscode in safari simple browser :bug: Observe icons don't load (icons load if disable Cross Origin Restrictions in develop menu is checked)
How are you running the server? I see the icons loading in but not on localhost using : ! This seems expected since Safari seems more strict about loading content from localhost in this case
Try codespaces, it repros there too. (For running the server I use ) It works on serverless (i.e. and ) because they are served in a different way I think
I'd also like to see it fixed. It's still reproducible on latest Safari version. <img width="290" alt="image" src="https://user-"
This definitely seems like a webkit bug but I can't put together a minimal repo. The issue is the the codicon font face doesn't go through the service worker during loading despite it's parent css file being loaded by it: ! I also tried debugging the production code in codespaces but Safari's dev tools are pretty much unusable with our minified service worker Instead, I'm going to push a change that inlines the font in the css file to hopefully work around this issue
Looks to be working in latest insiders !
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected.


Question: const outDir = path.join(outputRoot, 'media'); async function build() { <del> fs.copyFileSync( path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.css'), path.join(outDir, 'codicon.css')); fs.copyFileSync( path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.ttf'), path.join(outDir, 'codicon.ttf')); </del> await esbuild.build({ <del> entryPoints: [ path.join(srcDir, 'index.ts') ], </del> <ins> entryPoints: { 'index': path.join(srcDir, 'index.ts'), 'codicon': path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.css'), }, loader: { '.ttf': 'dataurl', }, </ins> bundle: true, minify: true, sourcemap: false,

If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
/verified


Question: IgnoreBracketedPasteMode = 'terminal.integrated.ignoreBracketedPasteMode', FocusAfterRun = 'terminal.integrated.focusAfterRun', AccessibleViewPreserveCursorPosition = 'terminal.integrated.accessibleViewPreserveCursorPosition', <ins> AccessibleViewFocusOnCommandExecution = 'terminal.integrated.accessibleViewFocusOnCommandExecution', </ins> // Debug settings that are hidden from user

Type: <bFeature Request</bCC Please consider auto-activiating accessible view in terminal when user hit enter key. In most cases, screen reader users want to open accessible view after executing command in terminal. Thus, pressing Enter key can do: the current command to terminal. Accessible View immediately. Rather than having this as the default mode, we could consider adding this as a custom user setting. VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-02T09:02:24.464Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
This makes sense. let us know if you have any thoughts.
I imagine this mode can boost user productivity because VSCode now sends user typing in Accessible View directly to the active terminal. If this mode is , users will experience more seamless round trip between terminal input and accessible view without having to press Alt+F2 and ESC.
To verify, enable . Run a command in the terminal. The accessible view should open.


Question: } } <del> private static _createMouseTarget(ctx: HitTestContext, request: HitTestRequest, domHitTestExecuted: boolean): IMouseTarget { </del> <ins> private static _createMouseTarget(ctx: HitTestContext, request: HitTestRequest): IMouseTarget { </ins> // console.log(`${domHitTestExecuted ? '=>' : ''}CAME IN REQUEST: ${request}`); <del> // First ensure the request has a target </del> if (request.target === null) { <del> if (domHitTestExecuted) { // Still no target... and we have already executed hit test... return request.fulfillUnknown(); } const hitTestResult = MouseTargetFactory._doHitTest(ctx, request); if (hitTestResult.type === HitTestResultType.Content) { return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText); } return this._createMouseTarget(ctx, request.withTarget(hitTestResult.hitTarget), true); </del> <ins> // No target return request.fulfillUnknown(); </ins> } // we know for a fact that request.target is not null

<!-- 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.88.0-insider in Safari OS Version: macOS Steps to Reproduce: Safari open a file with: to the right of any the cursor goes to the beginning of the line not the end This does not repro in stable
I didn't do any changes the last couple of milestones that could (easily) explain this. Can you reproduce this in the monaco editor? If so, can you do a bisect?
I bisected it to this commit: (the commit before it) does not repro the issue. This wasn't in Monaco editor, I just used run code web:
This commit is just a rename refactoring. It is very unlikely it causes this... This does not reproduce in chrome, right?
The bug does not reproduce in Edge on macOS, but it repros in Safari.
Unfortunately, I don't have access to Safari. Can you double check that this is caused by that commit? Can you locally rename the class back to the original name and see if it still happens? It does not make any sense that this commit would cause this behavior only on Safari.
Ok and I paired a bit on this and are really stumped. Bad news: That commit I called out seems to be a red herring. Good news: we can repro in the Monaco Editor Playground.


Question: } } <del> private static _createMouseTarget(ctx: HitTestContext, request: HitTestRequest, domHitTestExecuted: boolean): IMouseTarget { </del> <ins> private static _createMouseTarget(ctx: HitTestContext, request: HitTestRequest): IMouseTarget { </ins> // console.log(`${domHitTestExecuted ? '=>' : ''}CAME IN REQUEST: ${request}`); <del> // First ensure the request has a target </del> if (request.target === null) { <del> if (domHitTestExecuted) { // Still no target... and we have already executed hit test... return request.fulfillUnknown(); } const hitTestResult = MouseTargetFactory._doHitTest(ctx, request); if (hitTestResult.type === HitTestResultType.Content) { return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText); } return this._createMouseTarget(ctx, request.withTarget(hitTestResult.hitTarget), true); </del> <ins> // No target return request.fulfillUnknown(); </ins> } // we know for a fact that request.target is not null

Here's a side by side of two versions of the dev build: <img width="1680" alt="image" src=""You can see when I click to the right of a line, the older (working) build has the correct position here, while the newer broken build has column 1. Here are the links to these versions: Working: Broken: I believe this is out of both of our depths at this point so I'm passing to you This is a regression so I think it should be fixed before we release (assuming I'm not the only one to repro)
Did a bisect using and it points to
In that case, it is most likely .