Question: } const stashChanges = await repository.showStash(stash.index); <ins> const stashParentCommit = stash.parents.length > 0 ? stash.parents[0] : `${stash.hash}^`; </ins> if (!stashChanges || stashChanges.length === 0) { return;

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


Question: this._register(DOM.addDisposableListener(document.body, DOM.EventType.DRAG_START, this.onGlobalDragStart.bind(this), true)); this._register(DOM.addDisposableListener(document.body, DOM.EventType.DRAG_END, this.onGlobalDragEnd.bind(this), true)); <del> const addCellDragListener = (eventType: string, handler: (e: CellDragEvent) => void) => { </del> <ins> const addCellDragListener = (eventType: string, handler: (e: CellDragEvent) => void, useCapture = false) => { </ins> this._register(DOM.addDisposableListener( notebookEditor.getDomNode(), eventType,

Tracks enabling the new drop into editor features () for code cells in notebooks Was disabled as we were incorrectly showing the drop into indicator while dragging cells within a notebook
Actually looks like may have the most experience in this area. I'll submit a PR shortly that may fix the issue but will need your help verifying it


Question: }, { type: 'array', <del> items: [ </del> <ins> prefixItems: [ </ins> { type: 'string', enum: ['search'] }, { type: 'object',

Type: <bBug</bSteps to reproduce: a fresh, vanilla VS Code Insiders installation without any extensions. and open a new folder. , open it, and save it with the following contents: Actual results: A warning is reported in Problems tab and via yellow squiggles at line 10, column 25 (= character of the line specifying the ): Expected results: No warning is reported. Additional information: The problem matcher has been copied directly from the (). VS Code should not display warnings for unmodified examples from the docs. This also occurs in the current non-insiders release 1.74.0. VS Code version: Code - Insiders 1.75.0-insider (, 2022-12-08T05:20:51.149Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: Yes <details<summarySystem Info</summary </detailsExtensions: none<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
I can repro this. probably caused by your changes to the schema - could you pls take a look?
Of course. I'll submit the fix.
The PR is ready for review.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
/verified Thanks for the quick fix!


Question: ? this.options.installPreReleaseVersion /* Respect the passed flag */ : metadata?.preRelease /* Respect the existing pre-release flag if it was set */); } <del> metadata.pinned = this.options.installGivenVersion ? true : undefined; </del> <ins> metadata.pinned = this.options.installGivenVersion ? true : metadata.pinned; </ins> this._profileLocation = metadata.isApplicationScoped ? this.userDataProfilesService.defaultProfile.extensionsResource : this.options.profileLocation; const scannedExtension = URI.isUri(this.extension) ? await this.webExtensionsScannerService.addExtension(this.extension, metadata, this.profileLocation)

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --I saw and created this issue anyway because I think that issue is a) too old b) has too many other things going on. <!-- Describe the feature you'd like. --For me, personally, I'd like a simple way to enable/disable automatic extension updates per extension. I really care about updates for many of them and want to read the changelog before I update but for some, like Copilot, who get several updates a day, I really just want to always be on the latest. Copying section 7 from the above: Users could opt-out of Auto-Update for specific extensions, with toggle button next to Disable/Uninstall in Extensions Sidebar (under gear icon menu) and next to those buttons in Extensions Detail Page. This could allow users to stick with previous versions before new high-risk permissions became required This could allow avoiding updating to problematic versions of extensions until issues are resolved. This could allow users to manually review/approve updates based on reviews and changelog for higher (security or reliability) risk extensions This could be controlled per extension without disabling globally as may be desired by default for most extensions. Can be set per extension to "Default" vs Auto-Update vs. Disable Automates, like with Firefox, with Default behavior controlled through global setting. Could provide Undo Update button or choose from version history (like with Chrome/Firefox extension stores) on extension details page, to enable rollback to previous version after an update causes issues, instead of just disabling until if/when ever fixed.
Have you tried to select specific version for extension? This should effectively force version and prevent updates.
No, would that still show if there was an update available?
It should show. Also September 22 update had few updates to including . Check it out
Supported auto updating options per extension/publisher <img width="550" alt="image" src=""This is enabled when auto update mode is disabled or set to (new config)


Question: import * as dom from 'vs/base/browser/dom'; import { StandardMouseEvent } from 'vs/base/browser/mouseEvent'; import { createTrustedTypesPolicy } from 'vs/base/browser/trustedTypes'; <ins> import { equals } from 'vs/base/common/arrays'; </ins> import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import 'vs/css!./stickyScroll'; import { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition } from 'vs/editor/browser/editorBrowser';

In there is , which seems to be called every time the scroll event of the editor fires. That method seems to clear the dom node and reconstruct it unconditionally. When smooth scrolling is turned on, the scroll event fires many times per second and the call seems to take some time: ! I think if you would only rerender the sticky scroll widget when necessary (and generally try to minimize dom API accesses), we could improve the performance here easily. I think could have an equals method and would just do an early return if the new state equals the old state.
Thanks for this remark. It is a very good optimization point.


Question: ".webmanifest", ".js.map", ".css.map", <ins> ".ts.map", </ins> ".har", ".jslintrc", ".jsonld"

When TS is configured with both and set to , TypeScript generates sourcemap files ending in . These files are not treated as JSON by VS Code.


Question: } async setToken(token: IUserDataSyncAuthToken | undefined): Promise<void> { <del> if (token && this._token ? token.token !== this._token.token && token.authenticationProviderId !== this._token.authenticationProviderId : token !== this._token) { </del> <ins> if (token && this._token ? token.token !== this._token.token || token.authenticationProviderId !== this._token.authenticationProviderId : token !== this._token) { </ins> this._token = token; this._onDidChangeToken.fire(token); }

I see that settings sync is suspended because of invalid token and token is not getting refreshed / updated. Sync LogMicrosoft Account Log Did not work even after Reloading the window / opening new window. Restarting VS Code worked. any insights? Is there a cache on the extension?
From the account log, the token gets refreshed before it expires. This should trigger an event which causes the new token to get set, but it seems like something about this is failing, since we then get into a loop of getting a 401 and trying to resolve the access token.
Every time we see a failure, we unset the token and send token failed request and we update the token by getting it from the account sessions. Looks like we are getting an invalid token from the account sessions. Can you please check if that can happen?
Found the issue! The token was not being set in the shared process
Easier steps to verify: in with an account to preferences sync out of the same account in to the account again Preferences sync should restart without any error.


Question: export const editorBracketPairGuideActiveBackground5 = registerColor('editorBracketPairGuide.activeBackground5', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground5', 'Background color of active bracket pair guides (5). Requires enabling bracket pair guides.')); export const editorBracketPairGuideActiveBackground6 = registerColor('editorBracketPairGuide.activeBackground6', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground6', 'Background color of active bracket pair guides (6). Requires enabling bracket pair guides.')); <del> export const editorUnicodeHighlightBorder = registerColor('editorUnicodeHighlight.border', { dark: '#BD9B03', light: '#CEA33D', hcDark: '#ff0000', hcLight: '' }, nls.localize('editorUnicodeHighlight.border', 'Border color used to highlight unicode characters.')); export const editorUnicodeHighlightBackground = registerColor('editorUnicodeHighlight.background', { dark: '#bd9b0326', light: '#cea33d14', hcDark: '#00000000', hcLight: '' }, nls.localize('editorUnicodeHighlight.background', 'Background color used to highlight unicode characters.')); </del> <ins> export const editorUnicodeHighlightBorder = registerColor('editorUnicodeHighlight.border', { dark: '#BD9B03', light: '#CEA33D', hcDark: '#ff0000', hcLight: '#CEA33D' }, nls.localize('editorUnicodeHighlight.border', 'Border color used to highlight unicode characters.')); export const editorUnicodeHighlightBackground = registerColor('editorUnicodeHighlight.background', { dark: '#bd9b0326', light: '#cea33d14', hcDark: '#00000000', hcLight: '#cea33d14' }, nls.localize('editorUnicodeHighlight.background', 'Background color used to highlight unicode characters.')); </ins> // contains all color rules that used to defined in editor/browser/widget/editor.css

Text in TypeScript file: With the Light High Contrast theme, I don't see the unicode highlighting outline. !


Question: return this; } <ins> /** * A helper function to revive URIs. * * **Note** that this function should only be used when receiving URI#toJSON generated data * and that it doesn't do any validation. Use {@link URI.from} when received "untrusted" * uri components such as command arguments or data from storage. * * @param data The URI components or URI to revive. * @returns The revived URI or undefined or null. */ </ins> static revive(data: UriComponents | URI): URI; static revive(data: UriComponents | URI | undefined): URI | undefined; static revive(data: UriComponents | URI | null): URI | null;

Following test throws: I found this while investigating At that point the editor component is quite broken because of a lot of errors being thrown. Notice how not even a tab shows for the editor: <img width="1058" alt="image" src="https://user-"
that should already throw because at least a scheme is needed. It doesn't because was designed to be the runtime counter part of which never produces such output so some IPC deserialisation cost can be saved.
, that works for me and will also throw when we get bad objects into such as the from
Yeah, my plan is to add an argument like we have in other URI-places. It will default to true and only IPC should be relaxed
Not doing that because it actually already exists as . I believe the adoption/migration task is to use instead of whenever getting uri components from storage or esp from command arguments. Tho, there is one special case for which is that it automatically uses when the scheme is missing. We could make that configurable but a check for might make this obsolete
Closing this after and the ask to use when creating uri from "untrusted" sources
I will see to adopt , I forgot we had it


Question: <ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ .monaco-editor .rendered-markdown kbd { background-color: var(--vscode-keybindingLabel-background); color: var(--vscode-keybindingLabel-foreground); border-style: solid; border-width: 1px; border-radius: 3px; border-color: var(--vscode-keybindingLabel-border); border-bottom-color: var(--vscode-keybindingLabel-bottomBorder); box-shadow: inset 0 -1px 0 var(--vscode-widget-shadow); vertical-align: middle; padding: 1px 3px; } </ins>

Maybe this already exists, but it would be good if <kbdctrl</kbdrendered this in markdown: <img width="35" alt="image" src="https://user-"We could then add nicely styled keybindings to various hovers: <img width="125" alt="image" src="https://user-"cc


Question: import { showWithPinnedItems } from 'vs/platform/quickinput/browser/quickPickPin'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { IContextKey } from 'vs/platform/contextkey/common/contextkey'; <ins> import { timeout } from 'vs/base/common/async'; </ins> export async function showRunRecentQuickPick( accessor: ServicesAccessor,

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


Question: this.secondaryEditorPane.setInput(secondaryInput, undefined, context, token), this.primaryEditorPane.setInput(primaryInput, options, context, token)] ); <ins> this.layout(this.dimension); </ins> } override updateStyles(): void {

image in Luna paint, save. on entry in SCM viewlet to see diff some more a drink to resize the window diff editor loads Haven't tried in other custom editors, don't know if this is an issue with custom editor openers or in Luna.
Seems like a core issue, also happens with hex editor with:
This seems like an important regression. No idea what changed in custom editor land
This seems to have been caused by /cc The current calls causes the webviews to end up with height in this case. On the first call to never gets invoked. Previously it got invoked before the webview was even created Looking to see what that proper fix would be for this. Some potential ideas: I feel like should probably always be invoked at least once on a newly created editorI'm not sure why the passed in always has zero height but that seems wrong. If that element has , then I believe the code would work The issue seems to be that and both have zero height
I get the following error with these steps, unfortunately... So I could not repro this. ! I am pretty sure the grid calls layout to its views whenver their sizes change. Is it possible that some layer between the grid and your webview is caching something and not calling on you? Namely the editor group layer. For example, I see a potential problem here: If the layout comes, and is , the dimension will be lost forever, since the grid will no longer send repeated layout calls when dimensions don't change. The instance should remember the last and pass it along to the active editor pane, as soon as it comes along. cc A very similar situation happened here:
I hit the same exception when following hex editor alternative steps. This might be a new bug?
Maybe is the same and has easy steps to reproduce.
Thanks the lack of milestone was hiding that issue from me! Will check it out.
btw the is storing the dimensions and applies them here already when making the control visible:
That exception you see I receive in the official build of insiders, but not when running out of sources. It implies that the resource URI is undefined which shouldn't be possible. If you have any ideas or would like to help me discover what is causing this let me know
For the hex editor, I had trouble reproducing this until I set .


Question: this.secondaryEditorPane.setInput(secondaryInput, undefined, context, token), this.primaryEditorPane.setInput(primaryInput, options, context, token)] ); <ins> this.layout(this.dimension); </ins> } override updateStyles(): void {

The data inspector (usually) seems to trigger a relayout for me My reliable repo: a TS file and open the diff
Thanks I can repro with those steps! I will look into this tomorrow if you don't figure it out today.


Question: localize('voice.keywordActivation.inlineChat', "Keyword activation is enabled and listening for 'Hey Code' to start a voice chat session in the active editor."), localize('voice.keywordActivation.chatInContext', "Keyword activation is enabled and listening for 'Hey Code' to start a voice chat session in the active editor or view depending on keyboard focus.") ], <del> 'description': localize('voice.keywordActivation', "Controls whether the phrase 'Hey Code' should be speech recognized to start a voice chat session."), </del> <ins> 'description': localize('voice.keywordActivation', "Controls whether the keyword phrase 'Hey Code' is recognized to start a voice chat session. Enabling this will start recording from the microphone but the audio is processed locally and never sent to a server."), </ins> 'default': 'off', 'tags': ['accessibility', 'FeatureInsight'] }

Testing The setting says " speech recognized" which reads a bit weird. Maybe leave "speech" away or says "Controls whether the editor listens for the 'Hey Code' phrase and what to do with it"
Bonus points for mentioning that this happens all locally
Yeah, I think I will go with this:


Question: function cursorWordLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordLeftSelect : _cursorWordLeft); } <ins> function cursorWordAccessibilityLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordAccessibilityLeft : _cursorWordAccessibilityLeftSelect); } function cursorWordAccessibilityRight(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordAccessibilityRightSelect : _cursorWordAccessibilityRight); } </ins> function cursorWordStartLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordStartLeftSelect : _cursorWordStartLeft); }

Type: <bBug</bCC [I cannot easily find my authored issue so I am creating a new] Ctrl+LeftArrow and Ctrl+RightArrow does not work in the Output View (Ctrl+Shift+U) area. This happens on Windows. This means screen reader users cannot navigate word by word within the output view. Ctrl+Shift+U to focus in the Output View Choose any output (e.g., terminal) if you can navigate word by word via Ctrl+LeftArrow or Ctrl+RightArrow VS Code version: Code - Insiders 1.92.0-insider (, 2024-07-12T05:08:08.550Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (125)</summaryExtensionVersion ------ vscode-openapi4.27.0 zotenote1.0.1 android-dev-ext1.4.0 aiprm-lang0.0.2 Bookmarks13.5.0 openscad1.2.2 spellright3.0.134 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 external-pdf1.2.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint3.0.10 vscode-quick-select0.2.9 vscode-deno3.38.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 figma-vscode-extension0.3.5 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.17.1 copilot1.213.0 copilot-chat0.18. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.93.


Question: function cursorWordLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordLeftSelect : _cursorWordLeft); } <ins> function cursorWordAccessibilityLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordAccessibilityLeft : _cursorWordAccessibilityLeftSelect); } function cursorWordAccessibilityRight(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordAccessibilityRightSelect : _cursorWordAccessibilityRight); } </ins> function cursorWordStartLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordStartLeftSelect : _cursorWordStartLeft); }

cloudcode2.14.0 overleaf-workshop0.13.0 cslpreview0.2.2 path-autocomplete1.25.0 latex-workshop10.1.0 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 commitlint2.6.0 language-julia1.90.1 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 language-matlab1.2.4 zotero0.1.11 git-graph1.30.0 azure-dev0.8.3 vscode-azureappservice0.25.2 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.15.1 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.16.0 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.22.0 vscode-docker1.29.1 vscode-edge-devtools2.1.5 black-formatter2024.3. debugpy2024.9. flake82023.13. isort2023.13. python2024.11. vscode-pylance2024.7.1 jupyter2024.6. jupyter-keymap1.1.2 jupyter-renderers1.0.18 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.377.0 remote-ssh0.113. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.12.0 azure-repos0.38.0 cmake-tools1.18.43 cpptools1.21.0 cpptools-extension-pack1.3.0 js-debug-nightly2024.7.517 powershell2024.3.2 remote-explorer0.5. remote-repositories0.40.0 remote-server1.6.


Question: function cursorWordLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordLeftSelect : _cursorWordLeft); } <ins> function cursorWordAccessibilityLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordAccessibilityLeft : _cursorWordAccessibilityLeftSelect); } function cursorWordAccessibilityRight(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordAccessibilityRightSelect : _cursorWordAccessibilityRight); } </ins> function cursorWordStartLeft(editor: ICodeEditor, inSelectionMode: boolean = false): void { runEditorCommand(editor, inSelectionMode ? _cursorWordStartLeftSelect : _cursorWordStartLeft); }

vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.25 vscode-serial-monitor0.12.0 vscode-speech0.10.0 vscode-speech-language-pack-ko-kr0.4.0 vsliveshare1.0.5932 windows-ai-studio0.3.3 autodocstring0.6.1 pandocciter0.10.4 publisher1.1.3 shiny1.0.0 shinyuieditor0.5.0 quarto1.113.0 r-debugger0.5.4 java1.32.0 vscode-xml0.27.1 vscode-yaml1.14.0 r2.8.4 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.1.1 abc-music0.4.0 lua3.9.3 latex-utilities0.4.14 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-conventional-commits1.25.0 vscode-arduino0.6. vscode-java-debug0.58.0 vscode-java-dependency0.23.7 vscode-java-pack0.27.0 vscode-java-test0.41.1 vscode-maven0.44.0 zotero-cite0.8.6 markdown-all-in-one3.6.2 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
do you know why this isn't currently supported?
It seems to work for me in Mac, are you seeing it otherwise?
It does work for me, although sometimes with the screen reader enabled, it's reading the word then a whole chunk of text. I'll try on windows.
It’s not working in Windows.
Can reproduce on windows. I see that this is happening because there's a part of the when clause for and of for windows
Removing that from the clause fixes it. Looks like that condition was to fix this can you try removing that condition from the clause and seeing if you experience any consequences of doing so?


Question: const body = await this.renderBody(markdownDocument, resourceProvider); if (token.isCancellationRequested) { <del> return { html: '', containingImages: [] }; </del> <ins> return { html: '', containingImages: new Set() }; </ins> } const html = `<!DOCTYPE html>

<!-- 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.68.1 OS Version: Windows 10 Steps to Reproduce: a Markdown file and open "Open Preview to the Side" add line: ! image in preview second line: ! second image shows up. Remove the line above image preview shows 2 images and does not update properly !
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.68.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
Still happens in 1.68.1. Updating bug
Does this reproduce in the with all ?
Yes still happens with all extensions disabled


Question: const editorService = accessor.get(IEditorService); const sessionId = viewModel.sessionId; <ins> const viewState = view.widget.getViewState(); </ins> view.clear(); <del> await editorService.openEditor({ resource: ChatEditorInput.getNewEditorUri(), options: <IChatEditorOptions>{ target: { sessionId }, pinned: true } }, moveTo === MoveToNewLocation.Window ? AUX_WINDOW_GROUP : ACTIVE_GROUP); </del> <ins> await editorService.openEditor({ resource: ChatEditorInput.getNewEditorUri(), options: <IChatEditorOptions>{ target: { sessionId }, pinned: true, viewState: viewState } }, moveTo === MoveToNewLocation.Window ? AUX_WINDOW_GROUP : ACTIVE_GROUP); </ins> } }; }

chat in sidebar something into input Session in Editor :bug: input is cleared
This still repros for me
The input is preserved but the input for the new chat session in the sidebar is not cleared


Question: return; } this._logService.trace('IPty#pid'); <del> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', (error, stdout, stderr) => { </del> <ins> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', { env: { ...process.env, LANG: 'en_US.UTF-8' } }, (error, stdout, stderr) => { </ins> if (!error && stdout !== '') { resolve(stdout.substring(stdout.indexOf('/'), stdout.length - 1)); } else {

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.67.2 OS Version: MacOS Monterey 12.4 (default zsh terminal) Steps to Reproduce: a folder containing an "Umlaut" (äöü) folder in VSCode and launch/use a terminal (for testing I used echo something in zsh) VSCode restarting, VSCode fails to restore previous session as "the directory doesn't exist" However, if there is no "Umlaut" included in the path somewhere, this problem won't occur. This issue should affect at least all german VSCode-Users (like me) who want to open a folder on their Mac located in OneDrive. The problem is that the filepath for such files looks like "~/Library/CloudStorage/OneDrive-Persönlich/..." and restoring a session isn't possible for any folder/file in OneDrive, which is a little bit inconvenient. There might also just be a problem with my terminals encoding (currently set to UTF-8 so should work I guess) that it can't open the working directory with how it spells (in this case) the ö in the filepath: <img width="390" alt="Bildschirmfoto 2022-05-23 um 00 04 17" src="https://user-"(when I try to cd to that filepath it doesn't recognize the oxccx88 as ö and says the path doesn't exist) Thanks for help in advantage :) Greetings, Fussel
Related:
Is this a windows issue only? I can't replicate this issue. I'm running Arch Linux.


Question: return; } this._logService.trace('IPty#pid'); <del> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', (error, stdout, stderr) => { </del> <ins> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', { env: { ...process.env, LANG: 'en_US.UTF-8' } }, (error, stdout, stderr) => { </ins> if (!error && stdout !== '') { resolve(stdout.substring(stdout.indexOf('/'), stdout.length - 1)); } else {

the OP reported on macOS which shares most code with Linux
I'm trying to replicate the issue because I want to see if I can contribute to fixing it, but I can't seem to replicate it. I have a folder named "äöü" and I open the integrated terminal and run "echo hey". I close VSCode and reopen it, but it restores the session like it's supposed to. I even tried running a task that runs "echo hey" and it does the same.
do you close all VS Code windows and reopen? Just closing one of many will keep the original process running and reconnect to it.
I am trying to trace this bug. But it is kind of tricky because it is NOT reproducable on OSS dev build. It is reproducable on stable or latest insider production release though. On production release, after running a command in the terminal, somehow Unicode characters in the current path was saved incorrectly. (You can also see an incorrect terminal title updated.) On OSS dev build, Unicode characters in the path seems saving correctly and there is no issue restoring or splitting the terminal.
that's odd, could it be one of your settings?
I have zero settings for insider and OSS dev version. I only have some settings for the stable version. My system environment is same as OP's.
Attached a video to show the issue. https://user-
I wonder why this isn't happening in OSS: ! I think you must have settings in Insiders there because the default value is just ? Unless that's the same format zsh outputs its title?
No. I don't have any settings for insider. ! The final tab title is affected by other settings such as or ! After some testing, I can confirm that isn't updated into title sometimes. It might be another bug there but it is off-topic.
It seems like event fired unexpectedly with wrong path.
I also tried to reproduce the problem on Ubuntu but I wasn't successful (both the original problem and the split-terminal one). I even tried Persian and Arabic special letters but still had no chance.
To verifier: When testing make sure shell integration is off


Question: return; } this._logService.trace('IPty#pid'); <del> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', (error, stdout, stderr) => { </del> <ins> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', { env: { ...process.env, LANG: 'en_US.UTF-8' } }, (error, stdout, stderr) => { </ins> if (!error && stdout !== '') { resolve(stdout.substring(stdout.indexOf('/'), stdout.length - 1)); } else {

a directory at path: /Users/ma//demoproject.(contains Chinese component) the directory from VSCode top menu: File - Open... a new terminal from top menu: Terminal - New Terminal. and terminal window automatically goes to path (demoproject). Command + Q shortcut to quit VSCode completely. VSCode from mac dock icon. and VSCode shows error: The terminal process failed to launch: Starting directory (cwd) "/Users/ma/xe6x9cxacxe5x9cxb0/demoproject" does not exist. the path in step1 does not contain Chinese(like /Users/ma/local/demoproject.), no error shows. the error only shows when the path contains Chinese. Extra VSCode information Version: 1.65.2 (Universal) Commit: Date: 2022-03-10T14:33:49.188Z (1 wk ago) Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 21.4.0
To verifier: When testing make sure shell integration is off


Question: return; } this._logService.trace('IPty#pid'); <del> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', (error, stdout, stderr) => { </del> <ins> exec('lsof -OPln -p ' + this._ptyProcess.pid + ' | grep cwd', { env: { ...process.env, LANG: 'en_US.UTF-8' } }, (error, stdout, stderr) => { </ins> if (!error && stdout !== '') { resolve(stdout.substring(stdout.indexOf('/'), stdout.length - 1)); } else {

when split terminal in chinese path,error!
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.609 --- <!-- score: 0.558 --- <!-- score: 0.557 --- <!-- score: 0.499 --- <!-- score: 0.499 --<!-- potentialduplicatescomment --
I think this is language's problem.English path is very well.
It looks like your report is missing some important information, See for more info on how to report actionable terminal issues.
Thanks for your reply! version: 1.39.2 submit: Data Time: 2019-10-15T15:33:00.827Z Electron: 4.2.10 Chrome: 69.0.3497.128 10.11.0 V8: 6.9.427.31-electron.0 OS: Darwin x64 19.0.0 !
Thanks, you can probably workaround this with this setting:
I has try this settings by your suggestion. And it really not error.Thanks!But this way to create a terminal is not my default way.When I create a new terminal.It go to its father's file path , not it is before. If has a way to realize my need? !
Yeah that's what the setting does, you can't get what you're after until we fix this bug.
OK!I understand.Thank you!
I guess this is obvious, but the problem also occurs with European characters (at least french), and very likely with Arabic, Japanese, Indian, Korean characters as well. I also switched to in order to work around the problem.
I had this issue with the project folder itself containing unicode (greek letters). To my surprise, the hack still worked, the new terminal now sucesfully launches in the project folder.
Also happens when the cwd is set via runInTerminal
Note that in the latter case, it's not just the cwd that's affected - it's also all the command line arguments.
good point, this is probably an issue in debug land actually or related to encoding in the shell. Reopening it.
To verifier: When testing make sure shell integration is off


Question: } /** <del> * A result payload for a text search, pertaining to matches within a single file. </del> <ins> * A result payload for a text search, pertaining to {@link TextSearchMatchNew matches} * and its associated {@link TextSearchContextNew context} within a single file. </ins> */ export type TextSearchResultNew = TextSearchMatchNew | TextSearchContextNew;

Testing I can see that the of can be . When should I expect each of these types? I'm not sure I understand what the purpose of is.
is like the surrounding context lines that you see in the search editor. ! For example, here, lines 1791 and 1793 are context lines because they come directly before and after line 1792. I can try to explain this better in the docs, though!


Question: } /** <del> * A result payload for a text search, pertaining to matches within a single file. </del> <ins> * A result payload for a text search, pertaining to {@link TextSearchMatchNew matches} * and its associated {@link TextSearchContextNew context} within a single file. </ins> */ export type TextSearchResultNew = TextSearchMatchNew | TextSearchContextNew;

Testing From the API: What is the behavior supposed to be in the following cases: The pattern contains . The pattern contains and is false. The pattern is a regex and is false. The pattern contains whitespace and is true.
If regex is not on, it just looks for literally. I believe that this actually acts as if is true (if I'm interpreting code correctly). Any time that you have regex enabled and explicitly match a newline, it will be multi-line. I should probably document this. Any characters in the regex will also match the other case. ie: should also match all characters, not just lowercase letters. It will look for the whitespace, and will look for line boundaries on either side of the search string.
I can also add extra examples for corner cases so that this is more clear.


Question: private _containerReadyBarrier: AutoOpenBarrier; private _attachBarrier: AutoOpenBarrier; <ins> private _icon: TerminalIcon | undefined; </ins> private _messageTitleDisposable: IDisposable | undefined; private _widgetManager: TerminalWidgetManager = this._instantiationService.createInstance(TerminalWidgetManager);

Hi, I would like to request that upon restart vscode, the terminals can be restored. By restored, i mean the layout, the custom names, icon and color for the terminals are retained. The content DOES NOT need to be retain. Otherwise efforts to customize all the opened terminals would gone to waste when vscode is restarted. Alternatively, vscode can provide new workspace configurations, where developer can manually enter a list of terminals' custom names, Vscode, upon starting, will automatically create new terminals based on the configured list. Even better, each time, deveoper manually open a new terminal , vscode will auto update the workspace configuration file to add a new terminal to the configured list. This applies the same to renaming of terminal Hope that this can be achieved without relying on plugin. *Do note that this might not be a duplicate of other look similar kind of feature request. Cos for this request, content does not need to be preserved. And the terminal's custom names should be preserved (sadly, persistentSessionReviveProcess, does not maintain the terminal custom names)
except it doesn't save custom terminal names.
Not only it doesn't save custom terminal names, it also doesn't save icon and color.
This is meant to be supported with including content as well, there are currently some issues with it causing it to be flaky though. They might have to wait until v1.63 where we will focus on testing. Related:
fixed !
It's persisting the icon, color, name, and layout on window reload. Doesn't seem to persist icon, color, or name on restart.
Yes. My request is focusing on restart, not window reload


Question: * @param path A file system path (see `Uri#fsPath`) */ static file(path: string): Uri; <ins> /** * Creates new Uri from uri components. * * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs * validation and should be used for untrusted uri components retrieved from storage, * user input, command arguments etc */ </ins> static from(components: { scheme: string; authority?: string; path?: string; query?: string; fragment?: string; <del> }): Uri; </del> <ins> }, strict?: boolean): Uri; </ins> /** * Join a Uri path with path fragments and normalizes the resulting path. *

Following test throws: I found this while investigating At that point the editor component is quite broken because of a lot of errors being thrown. Notice how not even a tab shows for the editor: <img width="1058" alt="image" src="https://user-"
that should already throw because at least a scheme is needed. It doesn't because was designed to be the runtime counter part of which never produces such output so some IPC deserialisation cost can be saved.
, that works for me and will also throw when we get bad objects into such as the from
Yeah, my plan is to add an argument like we have in other URI-places. It will default to true and only IPC should be relaxed
Not doing that because it actually already exists as . I believe the adoption/migration task is to use instead of whenever getting uri components from storage or esp from command arguments. Tho, there is one special case for which is that it automatically uses when the scheme is missing. We could make that configurable but a check for might make this obsolete
Closing this after and the ask to use when creating uri from "untrusted" sources
I will see to adopt , I forgot we had it


Question: import { IBufferLine, IBufferRange, Terminal } from 'xterm'; import { ITerminalBackend, ITerminalProcessManager } from 'vs/workbench/contrib/terminal/common/terminal'; import { detectLinks } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> const enum Constants { /**

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --So far, I haven't been able to find any issues around this, but I also haven't found a ton of documentation on this feature either. Basically, I'd like to have finer grained control over how the terminal "word link" auto detection works. This is one of the only comments I was able to find about: Example: In the terminal, I have some output from a compiler that includes relative paths that can be clicked conveniently as an autodetected "word link": Specifically, clicking takes me to the line in question, which is great! However, at some point I tried configuring to include a forward slash (colon has related effects too), e.g. By doing so, the auto-detected file path is no longer clickable, since each path segment is considered as a separate word instead. Notably, the absolute path above is still clickable, but relative paths appear not to be (unless I remove from again). I guess there is probably more than one way to solve this, but a simple solution that comes to mind would be to have a separate config, maybe something like . If null it could fall back to the value, but at least this way it would be possible to configure different separators for double-click selection and link detection. Thanks in advance!
This case is meant to work with the regular non-word link detection as you can see here: <img width="490" alt="Screenshot 2023-05-08 at 6 31 15 am" src="https://user-"This may not work is if the relative path is not relative to the current working directory or you have shell integration disabled (which is provides better cwd detection). In your example is relative to the directory the terminal was currently on? The word links are meant to catch the majority of cases where the verified file links fall through.
Edit: never mind, I think I was testing with the wrong value of as I described in the original issue body :( I did however notice an interesting data point while integration was still disabled: the clickability of the file path seemed inconsistent. Here are a few screenshots showing what I mean (ctrl held in each case): Can't click in a compiler diagnostic, maybe due to the prefix on that line? !


Question: import { IBufferLine, IBufferRange, Terminal } from 'xterm'; import { ITerminalBackend, ITerminalProcessManager } from 'vs/workbench/contrib/terminal/common/terminal'; import { detectLinks } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> const enum Constants { /**

A command I wrote without line/column numbers works fine: ! A command I wrote with line/column numbers works fine: !
It's a little hard to tell if this is by design or not without knowing the exact cwd and full path of these folders. What we're going for is verify if the file is real if it's relative to the current working directory (which is citro3d-rs in your last 2, not sure for the first), otherwise fall back to word links. Since you changed wordSeparators, the fall back isn't as useful, but it looks like it's working properly.
Ah sorry I forgot to include those extra details. The cwd and path was the same in all 3 cases (i.e., the relative file path should work in each case, I think?): I guess the part that doesn't make sense to me is why the latter two cases work but the first one doesn't - since in each case the path is the same and I haven't changed directories at all. I suppose the workaround of removing and from is still an option but it would be nice if the linking was more consistent.
Yeah this is strange if it's all the same cwd. I Can't repro here I'm improving trace logging in , when that is released to insiders (the day after it's merged) you will be able to set the log level via the command palette (F1) and view the trace logs when hovering the terminal line by looking in the Output panel Window dropdown entry. That will give us some more info on why this is happening.
The logging changes should be in tomorrow's insiders
thanks for that, here is the trace log output that I think is relevant for debugging. Please let me know if you need more info or another reproduction: Edit: the cwd again was and the relative path should resolve: <details<summarytrace output</summary</detailsOne odd thing I noticed - without changing any settings, I actually had one instance where it worked as expected and linked the relative path to . However I'm not sure how or why it worked. When I opened a new terminal the old behavior (not linking) came back. If I can reproduce that again I'll try to capture those trace logs and maybe it will highlight a difference in behavior that's helpful. Thanks again for looking at this!


Question: import { IBufferLine, IBufferRange, Terminal } from 'xterm'; import { ITerminalBackend, ITerminalProcessManager } from 'vs/workbench/contrib/terminal/common/terminal'; import { detectLinks } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> const enum Constants { /**

So there's this in the logs: So it's parsed as a possible link, but not made a link candidate (which checked the file system before making the link). Somehow this part isn't adding the candidate: The only way I think that could happen is if doesn't return anything. I another log to verify the cwd and also improved fallback in case it is undefined. Can you do the same again on the next Insiders which should come out on Monday?
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
sorry for the delay, was a bit busy last week but I was able to check with a recent build (): The link is clickable now, even with and both in ! I'm guessing the fallback changes you did the trick. It seems the triage bot closed this as "not planned" but maybe you are able to update its status to "fixed" or similar? Thanks for your help looking into this issue!
great news! I still don't totally understand how it was failing before but at least the issue is fixed


Question: return this._repository.add(paths.map(p => Uri.file(p))); } <ins> revert(paths: string[]) { return this._repository.revert(paths.map(p => Uri.file(p))); } </ins> clean(paths: string[]) { return this._repository.clean(paths.map(p => Uri.file(p))); }

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --The built-in git extension exposes methods for most of the base git operations. Unfortunately not , which would be used to unstage changes. Could easily be to , i'll open a PR for this sometime today.
could you verify this by reviewing


Question: if (insertIntoNewFileKb) { hint += localize('insertIntoNewFile', " - Insert the code block into a new file ({0}).n", insertIntoNewFileKb); } else { <del> hint += localize('insertIntoNewFileNoKb', " - Insert the code block into a new file by configuring a keybinding for the Chat: Insert at Cursor command.n"); </del> <ins> hint += localize('insertIntoNewFileNoKb', " - Insert the code block into a new file by configuring a keybinding for the Chat: Insert into New File command.n"); </ins> } if (runInTerminalKb) { hint += localize('runInTerminal', " - Run the code block in the terminal ({0}).n", runInTerminalKb);

Testing In the screenshot below, "Chat: Insert at Cursor" should be "Chat: Insert into New File" !


Question: if (insertIntoNewFileKb) { hint += localize('insertIntoNewFile', " - Insert the code block into a new file ({0}).n", insertIntoNewFileKb); } else { <del> hint += localize('insertIntoNewFileNoKb', " - Insert the code block into a new file by configuring a keybinding for the Chat: Insert at Cursor command.n"); </del> <ins> hint += localize('insertIntoNewFileNoKb', " - Insert the code block into a new file by configuring a keybinding for the Chat: Insert into New File command.n"); </ins> } if (runInTerminalKb) { hint += localize('runInTerminal', " - Run the code block in the terminal ({0}).n", runInTerminalKb);

Testing There's a double close parenthesis here: <img width="305" alt="image" src=""
Also a missing on the line


Question: "@iktakahiro/markdown-it-katex@mjbvz/markdown-it-katex": <del> version "4.0.3" resolved "https://codeload.github.com/mjbvz/markdown-it-katex/tar.gz/58f6637b5883caa8a811f1736bc90b34cd26b395" </del> <ins> version "4.0.4" resolved "https://codeload.github.com/mjbvz/markdown-it-katex/tar.gz/cfcbc640a2780f2349d4e137ad51638f39279aa7" </ins> dependencies: katex "^0.16.2"

in vscode , the formula is rendered with katex, an KaTeX parse Error occurred ! in pycharm , it's rendered properly with mathjax ! latex code:
The equation renders fine if you wrap it in so I reckon it's related to how we handle bare math blocks. Relevant code:
wow
Hi Can I work on this?
sure
Can you let me know where to get started? As per the last comment, it works when wrapping with "$$" so I figure I need to look into how vscode is rendering lateX in general? any other pointers?
the reason is probably katex can't process environments outside $$ , but i wonder if katex has a similar option 'processEnvironments' like MathJax provides
This is the same for .NET Interactive
This is indeed a pain - especially for someone still going through the learning process and not a LaTeX expert by any means.


Question: const editorService = accessor.get(IEditorService); const editorGroupService = accessor.get(IEditorGroupsService); const openerService = accessor.get(IOpenerService); <ins> const pathService = accessor.get(IPathService); </ins> const resource = URI.revive(resourceArg); const [columnArg, optionsArg] = columnAndOptions ?? []; <del> // use editor options or editor view column as a hint to use the editor service for opening if (optionsArg || typeof columnArg === 'number') { </del> <ins> // use editor options or editor view column or resource scheme // as a hint to use the editor service for opening directly if (optionsArg || typeof columnArg === 'number' || resource.scheme === Schemas.untitled) { </ins> const [options, column] = mixinContext(context, optionsArg, columnArg); <del> await editorService.openEditor({ resource, options, label }, columnToEditorGroup(editorGroupService, column)); </del> <ins> let input: IResourceEditorInput | IUntitledTextResourceEditorInput; if (resource.scheme === Schemas.untitled && resource.path.length > 1) { // special case for untitled: we are getting a resource with meaningful // path from an extension to use for the untitled editor. as such, we // have to assume it as an associated resource to use when saving. we // do so by setting the `forceUntitled: true` and changing the scheme // to a file based one. the untitled editor service takes care to // associate the path properly then. input = { resource: resource.with({ scheme: pathService.defaultUriScheme }), forceUntitled: true, options, label }; } else { // use any other resource as is input = { resource, options, label }; } await editorService.openEditor(input, columnToEditorGroup(editorGroupService, column)); </ins> } // do not allow to execute commands from here

Issue Type: <bBug</bCreating an untitled document (from a file URI amended with the scheme) results in different states depending on whether the document is created with the command or the function. I tried to reduce the problem to a failing test case and failed, but maybe can still be useful for debugging. Create an untitled URI for a new file () Open an editor for that URI with / Type some text Save the file Notice that the save dialog starts with the we had providedCreate a new untitled URI for a new file Open an editor for that URI with Type some text Save the file The save dialog starts with the we had provided, just like with the other method. The save dialog starts with the text we typed instead of the we had provided. VS Code version: Code 1.63.0 (, 2021-12-07T05:16:45.441Z) OS version: Linux x64 5.15.6-200.fc35.x8664 Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (38)</summaryExtensionVersion ------ vscode-unfancy-file-icons3.15.0 icons-carbon0.2.4 chalice-icon-theme1.2.16 awk-ide-vscode0.6.2 vscode-fish1.0.24 init-script0.1.3 make-task-provider2.1.1 npm-intellisense1.4.0 path-intellisense2.6.0 vscode-eslint2.2.2 EditorConfig0.16.4 gtk-dark-titlebar1.2.3 vscode-pull-request-github0.34.0 go0.29.0 terraform2.17.0 nix-ide0.1.18 language-julia1.5.6 rust-analyzer0.2.842 git-graph1.30.0 fluent-icons0.0.15 direnv0.3.0 vscode-docker1.18.0 python2021.12. vscode-pylance2021.12.1 jupyter2021.11.


Question: const editorService = accessor.get(IEditorService); const editorGroupService = accessor.get(IEditorGroupsService); const openerService = accessor.get(IOpenerService); <ins> const pathService = accessor.get(IPathService); </ins> const resource = URI.revive(resourceArg); const [columnArg, optionsArg] = columnAndOptions ?? []; <del> // use editor options or editor view column as a hint to use the editor service for opening if (optionsArg || typeof columnArg === 'number') { </del> <ins> // use editor options or editor view column or resource scheme // as a hint to use the editor service for opening directly if (optionsArg || typeof columnArg === 'number' || resource.scheme === Schemas.untitled) { </ins> const [options, column] = mixinContext(context, optionsArg, columnArg); <del> await editorService.openEditor({ resource, options, label }, columnToEditorGroup(editorGroupService, column)); </del> <ins> let input: IResourceEditorInput | IUntitledTextResourceEditorInput; if (resource.scheme === Schemas.untitled && resource.path.length > 1) { // special case for untitled: we are getting a resource with meaningful // path from an extension to use for the untitled editor. as such, we // have to assume it as an associated resource to use when saving. we // do so by setting the `forceUntitled: true` and changing the scheme // to a file based one. the untitled editor service takes care to // associate the path properly then. input = { resource: resource.with({ scheme: pathService.defaultUriScheme }), forceUntitled: true, options, label }; } else { // use any other resource as is input = { resource, options, label }; } await editorService.openEditor(input, columnToEditorGroup(editorGroupService, column)); </ins> } // do not allow to execute commands from here

jupyter-keymap1.0.0 jupyter-renderers1.0.4 remote-containers0.209.5 remote-ssh0.68.0 remote-ssh-edit0.68.0 vsliveshare1.0.5196 vscode-commons0.0.6 vscode-yaml1.2.2 edit-with-shell1.3.0 lua2.5.3 even-better-toml0.14.2 shellcheck0.18.2 redo0.1.0 (6 theme extensions excluded) </details<!-- generated by issue reporter --
Looks like when you call we treat the URI as the associated resource: But we do not do the same from
I tried this with the following code: and both files saved to the correct paths... but I wasn't prompted at all by a file dialog. Is that expected?
Yes. Untitled with associated path don't ask for a file name, that is the whole idea of "untitled with associated resource" vs. "untitled without associated resource".


Question: document.body.appendChild(img); }); <del> vscode.postMessage({ type: 'ready' }); </del> <ins> vscode.postMessage({ type: 'ready', userAgent: window.navigator.userAgent }); </ins> </script>`); const ready = getMessage(webview); <del> await ready; </del> <ins> if ((await ready).userAgent.indexOf('Firefox') >= 0) { // Skip on firefox web for now. // Firefox service workers never seem to get any 'fetch' requests here. Other browsers work fine return; } </ins> { const imagePath = webview.webview.asWebviewUri(workspaceFile('image.png')); <del> console.log(imagePath); </del> const response = await sendRecieveMessage(webview, { src: imagePath.toString() }); assert.strictEqual(response.value, true); }

They used to finish in 3m24s before - […]-5f82-0dbc-&t=-371d-5daa-d7a2-
I can confirm that tests started timing out after this commit - The first commit that is started happening is Checking what commits in between would have caused it. FYI
Assigning to as one of his commits has caused this timeout.
Mac seems to be passing pretty reliably now but now windows fails consistently on two tests Been adding a bunch of logging to investigate this. Here's the relevant new error: The service worker should be intercepting this request so it should never be going to the network at all here. Taking a look to see if I can figure out what is going on
Actually it's not windows specific: its Firefox specific. The windows browser tests just happen to be the only ones using Firefox Can reproduce on Mac too


Question: protected async createReferencedObject(key: string, viewType: string): Promise<IResolvedNotebookEditorModel> { const uri = URI.parse(key); <del> const info = await this._notebookService.withNotebookDataProvider(uri); </del> <ins> const info = await this._notebookService.withNotebookDataProvider(uri, viewType); </ins> let result: IResolvedNotebookEditorModel;

Verifying Version: 1.55.0-insider Commit: Date: 2021-03-25T16:24:13.227Z clone and open in vscode add a to F5 to run the extension Open an untitled file In the editor's tab, choose from the context menu, pick ! a different notebook is opened, no console log statement printed !
Are you able to open markdown notebooks without issue on non untitled files?
Yes, that works. I also tried to open a GitHub issue notebook on an untitled file and while a notebook seems to open which has a 'Github Issues' cell, the function in the GitHub issue notebook source seems not be called. So I'm a bit confused
I did some investigation with this and I can't reproduce it out of sources. When I select it through the reopen with dialog the notebook service receives the correct viewtype, although it always fails to open with the error . I'm not sure why it is failing as the inputs get created correctly and everything seems to be passing through the right way. Let me know if you want to investigate together.


Question: async function copyVscodeDevLink(gitAPI: GitAPI, useSelection: boolean, context: LinkContext, includeRange = true) { try { <del> const permalink = await getLink(gitAPI, useSelection, getVscodeDevHost(), 'headlink', context, includeRange); </del> <ins> const permalink = await getLink(gitAPI, useSelection, true, getVscodeDevHost(), 'headlink', context, includeRange); </ins> if (permalink) { return vscode.env.clipboard.writeText(permalink); }

Testing Steps: Open locally cloned vscode repo with any branch Welcome page Connect to... Continue Working in Nothing happens after this for me... but I do see the commands get run:


Question: clear(): void; } <ins> export interface GlobalEnvironmentVariableCollection extends EnvironmentVariableCollection { /** * Gets scope-specific environment variable collection for the extension. This enables alterations to * terminal environment variables solely within the designated scope, and is applied in addition to (and * after) the global collection. * * Each object obtained through this method is isolated and does not impact objects for other scopes, * including the global collection. * * @param scope The scope to which the environment variable collection applies to. * * If a scope parameter is omitted, collection applicable to all relevant scopes for that parameter is * returned. For instance, if the 'workspaceFolder' parameter is not specified, the collection that applies * across all workspace folders will be returned. */ getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection; } export type EnvironmentVariableScope = { /** * Any specific workspace folder to get collection for. */ workspaceFolder?: WorkspaceFolder; }; </ins> /** * A location in the editor at which progress information can be shown. It depends on the * location how progress is visually represented.

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


Question: private centeredEditorActive: boolean; private centeredEditorSashLeft: Sash; private centeredEditorSashRight: Sash; <del> private centeredEditorPreferedSize: number; </del> <ins> private centeredEditorPreferredSize: number; </ins> private centeredEditorLeftMarginRatio: number; private centeredEditorDragStartPosition: number; private centeredEditorDragStartSize: number;

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


Question: :root { --vscode-sash-size: 4px; <ins> --vscode-sash-hover-size: 4px; </ins> } .monaco-sash {

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.80.0 OS Version: macOS Steps to Reproduce: vscode itself assigned this css var to but monaco-editor doesn't have this, it only has so should be , too.
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.80.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!


Question: constructor() { this.tokenTypeById = {}; this.tokenModifierById = {}; <del> this.typeHierarchy = {}; </del> <ins> this.typeHierarchy = Object.create(null); </ins> } public registerTokenType(id: string, description: string, superType?: string, deprecationMessage?: string): void {

Issue Type: <bBug</bSemantic token colorization fails when a token type ID matching any object.prototype property name is provided. Some examples are: , and . is the most problematic name since it is likely to be used as a token type ID. Any string should be able to be used as a token type ID without causing the colorization to fail. Because tries to call on what was thought to be a but was actually a , which throws a TypeError and causes the colorization to fail. The easiest way is probably to use a instead of an object for . Another solution might be to instantiate using instead of an object literal in order to avoid the object.prototype. VS Code version: Code 1.47.2 (, 2020-07-15T18:22:15.161Z) OS version: Linux x64 4.19.0-9-amd64 <!-- generated by issue reporter --


Question: const quickInputService = accessor.get(IQuickInputService); const inputBox = quickInputService.createInputBox(); inputBox.placeholder = nls.localize('findMatchAction.inputPlaceHolder', "Type a number to go to a specific match (between 1 and {0})", controller.getState().matchesCount); <del> inputBox.onDidChangeValue(value => { </del> <ins> const updatePickerAndEditor = (value: string) => { </ins> const index = parseInt(value); if (!isNaN(index) && index > 0 && index <= controller.getState().matchesCount) { // valid inputBox.validationMessage = undefined; <ins> controller.goToMatch(index - 1); const currentMatch = controller.getState().currentMatch; if (currentMatch) { this.addDecorations(editor, currentMatch); } </ins> } else { inputBox.validationMessage = nls.localize('findMatchAction.inputValidationMessage', "Please type a number between 1 and {0}", controller.getState().matchesCount); <ins> this.clearDecorations(editor); </ins> } <ins> }; inputBox.onDidChangeValue(value => { updatePickerAndEditor(value); </ins> }); inputBox.onDidAccept(() => {

Testing Meaning that it would automatically highlight and reveal in the background when you type a valid number of a match.


Question: *--------------------------------------------------------------------------------------------*/ import { ExtensionContext, NotebookDocument, NotebookDocumentChangeEvent, NotebookEdit, workspace, WorkspaceEdit } from 'vscode'; <del> import { v4 as uuid } from 'uuid'; </del> import { getCellMetadata } from './serializers'; import { CellMetadata } from './common'; import { getNotebookMetadata } from './notebookSerializer';

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


Question: *--------------------------------------------------------------------------------------------*/ import { ExtensionContext, NotebookDocument, NotebookDocumentChangeEvent, NotebookEdit, workspace, WorkspaceEdit } from 'vscode'; <del> import { v4 as uuid } from 'uuid'; </del> import { getCellMetadata } from './serializers'; import { CellMetadata } from './common'; import { getNotebookMetadata } from './notebookSerializer';

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


Question: readonly extensionPath: string; /** <del> * Gets the extension's environment variable collection for this workspace, enabling changes * to be applied to terminal environment variables. </del> <ins> * Gets the extension's global environment variable collection for this workspace, enabling changes to be * applied to terminal environment variables. </ins> */ <del> readonly environmentVariableCollection: EnvironmentVariableCollection; </del> <ins> readonly environmentVariableCollection: GlobalEnvironmentVariableCollection; </ins> /** * Get the absolute path of a resource contained in the extension.


Question: display: none; } <del> .monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon { </del> <ins> .monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon, .monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .monaco-icon-label.suggest-icon::before { </ins> display: none; }

Issue Type: <bBug</bIn the September release, we updated the suggest widget to respect the class. See The recent changes in the suggest widget for has caused a regression and brought the icons back when class is set on the widget. VS Code version: Code - Insiders 1.29.0-insider (, 2018-10-19T06:50:39.461Z) OS version: Darwin x64 15.6.0 <!-- generated by issue reporter --
I still see icons in the Setting suggest widget: !
I meant the settings search <img width="646" alt="screen shot 2018-11-02 at 10 15 38 am" src="https://user-"


Question: const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel()); <del> // 2 cases where we want to send the word // a) there is no stored query model, but there is a word. This signals the editor that drove the highlight is disposed (cell out of viewport, etc) // b) the queried model is not the current model. This signals that the editor that drove the highlight is still in the viewport, but we are highlighting a different cell // otherwise, we send null in place of the word, and the model and selection are used to compute the word // TODO: @Yoyokrazy -- investigate this logic for sendWord const sendWord = (!WordHighlighter.query.modelInfo && WordHighlighter.query.word) || (WordHighlighter.query.modelInfo?.model.uri !== this.model.uri) ? true : false; if (!WordHighlighter.query.modelInfo || (WordHighlighter.query.modelInfo.model.uri !== this.model.uri)) { // use this.model this.workerRequest = this.computeWithModel(this.model, this.editor.getSelection(), sendWord ? WordHighlighter.query.word : null, otherModelsToHighlight); } else { // use stored query model + selection this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </del> <ins> // when reaching here, there are two possible states. // 		1) we have text focus, and a valid query was updated. // 		2) we do not have text focus, and a valid query is cached. // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely if (!WordHighlighter.query.modelInfo || WordHighlighter.query.modelInfo.model.isDisposed()) { return; </ins> } <ins> this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </ins> this.workerRequest?.result.then(data => { if (myRequestId === this.workerRequestTokenId) {

Keeping this open as the main tracking issue as I keep an eye on error telemetry. Been quiet and haven't seen any entries in the errors site since early Feb with +
Closing this as fixed by the above linked PR's. Error telem has been quiet with no entries for ~4 weeks.


Question: const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel()); <del> // 2 cases where we want to send the word // a) there is no stored query model, but there is a word. This signals the editor that drove the highlight is disposed (cell out of viewport, etc) // b) the queried model is not the current model. This signals that the editor that drove the highlight is still in the viewport, but we are highlighting a different cell // otherwise, we send null in place of the word, and the model and selection are used to compute the word // TODO: @Yoyokrazy -- investigate this logic for sendWord const sendWord = (!WordHighlighter.query.modelInfo && WordHighlighter.query.word) || (WordHighlighter.query.modelInfo?.model.uri !== this.model.uri) ? true : false; if (!WordHighlighter.query.modelInfo || (WordHighlighter.query.modelInfo.model.uri !== this.model.uri)) { // use this.model this.workerRequest = this.computeWithModel(this.model, this.editor.getSelection(), sendWord ? WordHighlighter.query.word : null, otherModelsToHighlight); } else { // use stored query model + selection this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </del> <ins> // when reaching here, there are two possible states. // 		1) we have text focus, and a valid query was updated. // 		2) we do not have text focus, and a valid query is cached. // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely if (!WordHighlighter.query.modelInfo || WordHighlighter.query.modelInfo.model.isDisposed()) { return; </ins> } <ins> this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </ins> this.workerRequest?.result.then(data => { if (myRequestId === this.workerRequestTokenId) {

! Version: 1.85.0-insider (user setup) Commit: Date: 2023-12-01T19:00:37.339Z Electron: 25.9.6 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0.
I think that is expected, see This should behave the same for when multiple editor groups are opened in the same window.
The issue is that highlighted words remain until a new word is focused. In the main window, the highlights disappear when the word loses focus.
not for me in this case: ! Do you have a case where highlights remove to reproduce?
In the main window, If you click on a word and then on a blank line, the highlight disappears: !
my assumption here is that the other editor is over a word that then is highlighted in the floating editor. There is probably a heuristic to decide which highlight to apply. Can you double check my theory?
it doesn't matter if it's on the same word or not but I found out this only happens if the same editor is opened on the main window or in other windows (in this case the first floating editor highlights disappear after losing focus). Highlights disappear after losing focus in: Main window Single floating editor (Not opened in main window) Only the first floating editor when there are multiple (Not opened in main window)
I can reproduce but this is not a floating window issue. It reproduces even when you just have 2 editor groups opened next to each other: !
tl;dr: Setting to "off" fixes it. I'm seeing what I think is the same bug, after upgrading to 1.85.1 (first upgrade in a number of months, so I've jumped a few versions). While writing this I think there are two distinct problems. The first is when a single file is open: -click a word. It highlights that word, and in a different grey highlights the same word in rest of document. esc: nothing happens. I now need to click a blank line to get the highlights to go away. (I'm sure esc used to get rid of it before??)


Question: const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel()); <del> // 2 cases where we want to send the word // a) there is no stored query model, but there is a word. This signals the editor that drove the highlight is disposed (cell out of viewport, etc) // b) the queried model is not the current model. This signals that the editor that drove the highlight is still in the viewport, but we are highlighting a different cell // otherwise, we send null in place of the word, and the model and selection are used to compute the word // TODO: @Yoyokrazy -- investigate this logic for sendWord const sendWord = (!WordHighlighter.query.modelInfo && WordHighlighter.query.word) || (WordHighlighter.query.modelInfo?.model.uri !== this.model.uri) ? true : false; if (!WordHighlighter.query.modelInfo || (WordHighlighter.query.modelInfo.model.uri !== this.model.uri)) { // use this.model this.workerRequest = this.computeWithModel(this.model, this.editor.getSelection(), sendWord ? WordHighlighter.query.word : null, otherModelsToHighlight); } else { // use stored query model + selection this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </del> <ins> // when reaching here, there are two possible states. // 		1) we have text focus, and a valid query was updated. // 		2) we do not have text focus, and a valid query is cached. // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely if (!WordHighlighter.query.modelInfo || WordHighlighter.query.modelInfo.model.isDisposed()) { return; </ins> } <ins> this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </ins> this.workerRequest?.result.then(data => { if (myRequestId === this.workerRequestTokenId) {

The second is much more annoying, but only seems to happen when I have same file open twice, after using Split Editor Right. -click a word. It highlights that word, and (in a different shade of grey) highlights the same word in rest of window. In the other window it highlights some (but not all!) of the same word. doesn't get rid of it. Clicking a blank line does not get rid of it. All the grey highlights are there forever. the other window: still the highlights are there. I can now double-click a different word and see it highlight throughout document, click blank line gets rid of that one, but still my first set of highlights survive! only way to get rid of them is to close the editor and open it again. OR, reduce to just one window open, double-click it again, and then click a blank line. Playing around, I've noticed it does not matter which window I do the double-click in, it is the window on the right where the unwanted highlights survive. Regarding mentioned in the 1.84 release notes, searching for that in settings doesn't find anything. But I do have as mentioned in It is currently set to "singleFile" If I set it to "off", everything works as it used to. Double-click still highlights within the open file (only), and esc now cancels it again :-) BTW, testing the 3rd option, "multiFile", it appears to behave exactly as "singleFile" in every respect I described above. Anyway, switching to "off" gives me exactly the behaviour I want, so I'm happy.
Thanks for the detailed writeup! The editor highlights have been reworked to start bringing in support for semantic highlighting between multiple documents. This was primarily tested between multiple different documents and there are some bugs arising that have to do with split view of the same file. Will be addressing in the near future.
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
Steps for verification: Open a typescript file in split view, with content as follows: In the left panel, click the symbol. In the right panel, click the same symbol. In the right panel, click anywhere else that isn't a symbol.


Question: const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel()); <del> // 2 cases where we want to send the word // a) there is no stored query model, but there is a word. This signals the editor that drove the highlight is disposed (cell out of viewport, etc) // b) the queried model is not the current model. This signals that the editor that drove the highlight is still in the viewport, but we are highlighting a different cell // otherwise, we send null in place of the word, and the model and selection are used to compute the word // TODO: @Yoyokrazy -- investigate this logic for sendWord const sendWord = (!WordHighlighter.query.modelInfo && WordHighlighter.query.word) || (WordHighlighter.query.modelInfo?.model.uri !== this.model.uri) ? true : false; if (!WordHighlighter.query.modelInfo || (WordHighlighter.query.modelInfo.model.uri !== this.model.uri)) { // use this.model this.workerRequest = this.computeWithModel(this.model, this.editor.getSelection(), sendWord ? WordHighlighter.query.word : null, otherModelsToHighlight); } else { // use stored query model + selection this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </del> <ins> // when reaching here, there are two possible states. // 		1) we have text focus, and a valid query was updated. // 		2) we do not have text focus, and a valid query is cached. // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely if (!WordHighlighter.query.modelInfo || WordHighlighter.query.modelInfo.model.isDisposed()) { return; </ins> } <ins> this.workerRequest = this.computeWithModel(WordHighlighter.query.modelInfo.model, WordHighlighter.query.modelInfo.selection, WordHighlighter.query.word, otherModelsToHighlight); </ins> this.workerRequest?.result.then(data => { if (myRequestId === this.workerRequestTokenId) {

choose any whitespace, etc in Stable: The highlights should disappear from the left panel, but persist in the right, even as you click around the right panel. Fixed on insiders: You should not be able to end up in a state with persistent highlights when your cursor is not on a symbol.


Question: return TriggerAction.CLOSE_PICKER; }, <del> accept: async (keyMods, event) => this.openSymbol(provider, symbol, token, { keyMods, preserveFocus: event.inBackground }), </del> <ins> accept: async (keyMods, event) => this.openSymbol(provider, symbol, token, { keyMods, preserveFocus: event.inBackground, forcePinned: event.inBackground }), </ins> }); } }

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --Description: As of 1.44, I am not able to open multiple files from "Go to file..." menu (ctrl + p shortcut) when middle mouse clicked on them. I used it when opening similiar/dependent files (ts, html and css for component, etc.) As of 1.44 middle mouse click only opens last file clicked. Steps to Reproduce: dependented files (.html, .ts and .css) with same name. for that name in "Go to file..." (ctrl+p shortcut). mouse click on multiple files. <!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.44 OS Version: Windows_NT x64 10.0.
I found that holding alt + middle mouse button does open multiple files in 1.44. If it is not regression please fill free to close it.
Workaround: configure in settings.


Question: stickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges, afterContentClassName: 'inline-folded', className: 'folded-background', <ins> minimap: foldedBackgroundMinimap, </ins> isWholeLine: true, firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon) });

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --When folded, folding ranges are displayed in the editor as a single line with darkened background. Hovever (as of ), on the minimap, the background of this line is not darkened. This makes it harder to navigate using the minimap. !
Either this isn't working or steps are non trivial
Ok, see this working unless I have render characters enabled


Question: ]; return toDisposable(() => { <del> blurDisposable.dispose(); done(false, false); </del> <ins> if (isFinishableDisposeEvent) { done(false); } else { dispose(toDispose); } </ins> }); }

<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.34.0 OS Version: Windows 10 Steps to Reproduce: terminal any command that makes any change of your current project directory after a while, like 'New Folder' action refreshing directory by the terminal command, 'New Folder' input will disappear and File Explorer remains inactive <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes !


Question: command: 'git.publish', title: l10n.t({ message: '{0} Publish Branch', args: [icon], comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }), tooltip: this.state.isSyncInProgress ? <del> l10n.t({ message: 'Publishing Branch...', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }) : l10n.t({ message: 'Publish Branch', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }), </del> <ins> (this.state.HEAD?.name ? l10n.t({ message: 'Publishing Branch '{0}'...', args: [this.state.HEAD.name], comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }) : l10n.t({ message: 'Publishing Branch...', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] })) : (this.repository.HEAD?.name ? l10n.t({ message: 'Publish Branch '{0}'', args: [this.state.HEAD?.name], comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }) : l10n.t({ message: 'Publish Branch', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] })), </ins> arguments: [this.repository.sourceControl], }, enabled: !this.state.isSyncInProgress

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --In the source control, after changes are staged and a commit message is provided, it's no more possible to see easily the current branch name to commit to: ! The validation button displays a pop-up message, but this does not really add value: ! I propose to display the current branch name in this pop-up: ! This would dispel any doubts about the branch on which one commits. By the way, the same is possible for the "Publish Branch" button. Is it the right idea?
I'll submit a PR for this.
Whoaww, great, thanks. I had a look on it, mostly for curiosity, but I am very far from vsc dev currently... I will review with pleasure.
It's ready for review.
It looks so easy! Thanks. Do you think the 'Publish Branch' popup should be relooked too? The branch name appears in the commit textfield, but depending of the sidebar size it's not always visible. !
~That makes sense. I'll update the PR.~ I first thought this was stated in the issue description too, but it wasn't. So, we should hear from on this.
It is, at the end:
I guess I have to compile the whole vscode if I want to live test?...
Yes. If it's your first time, I suggest using GitHub Codespaces or dev containers, instead of compiling/running it on your plain OS environment.
I've updated the PR to include the branch name on the "Publish Branch" button, too.
Ok perfect! I first thought the screenshots were from my issue, just as an illustration... But it's yours in live, so I guess it's ok. I will investigate for a dev container, it may be useful for next PR... Thx for that.


Question: command: 'git.publish', title: l10n.t({ message: '{0} Publish Branch', args: [icon], comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }), tooltip: this.state.isSyncInProgress ? <del> l10n.t({ message: 'Publishing Branch...', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }) : l10n.t({ message: 'Publish Branch', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }), </del> <ins> (this.state.HEAD?.name ? l10n.t({ message: 'Publishing Branch '{0}'...', args: [this.state.HEAD.name], comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }) : l10n.t({ message: 'Publishing Branch...', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] })) : (this.repository.HEAD?.name ? l10n.t({ message: 'Publish Branch '{0}'', args: [this.state.HEAD?.name], comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] }) : l10n.t({ message: 'Publish Branch', comment: ['{Locked="Branch"}', 'Do not translate "Branch" as it is a git term'] })), </ins> arguments: [this.repository.sourceControl], }, enabled: !this.state.isSyncInProgress

Verification steps: Commit action button Open a folder/workspace that contains a git repository using VS Code Insiders Make a change to a file, and save the file Switch to the "Source Control" view and hover over the "Commit" action button Confirm that the tooltip of the action read Publish Branch action button Open a folder/workspace that contains a git repository using VS Code Insiders Create a new branch Switch to the "Source Control" view and hover over the "Publish Branch" action button Confirm that the tooltip of the action read
Hi, Both verification steps are working. Thanks. Version: 1.75.0-insider Commit: Date: 2023-01-20T05:23:42.626Z Electron: 19.1.9 Chromium: 102.0.5005.194 16.14.2 V8: 10.2.154.23-electron.0 OS: Linux x64 6.0.0-0..6-amd64 Sandboxed: Yes
Do we need to submit a PR to include this in the release notes?
Thanks for the nudge. Added


Question: } public asUrl(filepath: string): Uri { <del> if (filepath.startsWith(TypeScriptServiceClient.WALK_THROUGH_SNIPPET_SCHEME_COLON)) { </del> <ins> if (filepath.startsWith(TypeScriptServiceClient.WALK_THROUGH_SNIPPET_SCHEME_COLON) || (filepath.startsWith('untitled:') && this._apiVersion.has213Features()) ) { </ins> return Uri.parse(filepath); } return Uri.file(filepath);

Steps to Reproduce: an untitled file with JS mode code with errors/warnings on one =crash ! Is the resource scheme file but the URI untitled? Looks like it
Looks like is registered this as a file resource where are is not having any issues.
Thanks for the investigation. should fix this


Question: // Actions const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions); <del> // Show Search and Find in Files are redundant, but we can't break keybindings by removing one. So it's the same action, same keybinding, registered to different IDs. // Show Search 'when' is redundant but if the two conflict with exactly the same keybinding and 'when' clause, then they can show up as "unbound" - #51780 registry.registerWorkbenchAction(SyncActionDescriptor.from(OpenSearchViewletAction), 'View: Show Search', CATEGORIES.View.value); </del> <ins> // View: Show Search is used for the keybindings in the View menu and the sidebar #115556, but it should only be enabbled when search.mode == view, or else it will steal priority over opening a search editor #115511 const SEARCH_MODE_CONFIG = 'search.mode'; registry.registerWorkbenchAction( SyncActionDescriptor.from( OpenSearchViewletAction, { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_F }, ContextKeyAndExpr.create([Constants.SearchViewVisibleKey.toNegated(), ContextKeyEqualsExpr.create(`config.${SEARCH_MODE_CONFIG}`, 'view')])), 'View: Show Search', CATEGORIES.View.value); // Find in Files by default is the same as View: Show Search, but can be configured to open a search editor instead with the `search.mode` binding </ins> KeybindingsRegistry.registerCommandAndKeybindingRule({ description: { description: nls.localize('findInFiles.description', "Open the search viewlet"),

Just to confirm that if you are aware that this change will not show the keybinding for Search view anymore at following places: <img width="367" alt="image" src="https://user-"<img width="161" alt="image" src="https://user-"Not sure if it is intended. Originally posted by in


Question: currentLineIsEmptyOrWhitespace = strings.lastNonWhitespaceIndex(currentLine) === -1; } <del> const deletionRange = new Range(currentLineNumber + 1, 1, lineCount + 1, 1); </del> <ins> const deletionRange = model.validateRange(new Range(currentLineNumber + 1, 1, lineCount + 1, 1)); </ins> if (!deletionRange.isEmpty()) { model.pushEditOperations(prevSelection, [EditOperation.delete(deletionRange)], edits => prevSelection); }

This was also discussed in and apparently fixed in , but I'm still experiencing this. Steps to reproduce: to in settings. a file, and add the following contents: Ensure that there's an empty newline at the end. Save it. Then hit Undo. Nothing will happen. Hit Undo again, then it will work as expected. You can even hit Save multiple times, and each time will add one extra step to the Undo list. So hit Save 10 times, then you can hit Undo 10 times and nothing will happen. Could you take a look at this if possible?