Question: }, "autoCloseBefore": ";:.,={}])>` nt$", "wordPattern": { <del> "pattern": "(p{Alphabetic}|p{Number}|p{Nonspacing_Mark}){2,}", </del> <ins> "pattern": "(p{Alphabetic}|p{Number}|p{Nonspacing_Mark}){1,}", </ins> "flags": "u" } }

I'm not familiar enough with latex to know if there's a reason for it. Given that no other language does this I would be fine to remove it.
+1 for changing the word definition. FYO who originally this via
I confirm that changing the word definition to 1 character is fine.
<!-- 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


Question: return ancestor; } <del> // TODO@lszomoru - Return first commit </del> <ins> // First commit const commits = await this.repository.log({ maxParents: 0, refNames: ['HEAD'] }); if (commits.length > 0) { return commits[0].hash; } </ins> } else if (historyItemGroupIds.length > 1) { const ancestor = await this.repository.getMergeBase(historyItemGroupIds[0], historyItemGroupIds[1], ...historyItemGroupIds.slice(2)); return ancestor;

a folder/workspace in VS Code Insiders a git repository in the folder a file, make changes to it, and create multiple commits Expected: commits should appear in the history graph Actual: no commits are being shown in the history graph
this only works when there are multiple commits. I.e. if we has just one commit in the repo, then history isn't displayed. Else works as expected.
Thanks! I have filed to handle the single commit scenario


Question: } model.setLanguage(provider.options.language ?? 'markdown'); container.appendChild(this._editorContainer); <del> let ariaLabel = undefined; const label = provider.options.ariaLabel; const navigationHint = this._getNavigationAriaHint(provider.verbositySettingKey); const disableHint = this._getDisableVerbosityHint(provider.verbositySettingKey); if (label && navigationHint && disableHint) { ariaLabel = localize('ariaLabelAll', '{0}, {1}, {2}', label, navigationHint, disableHint); } else if (label && navigationHint) { ariaLabel = localize('ariaLabelLabelNavigation', '{0}, {1}', label, navigationHint); } else if (label && disableHint) { ariaLabel = localize('ariaLabelLabelDisable', '{0}, {1}', label, disableHint); } else if (navigationHint && disableHint) { ariaLabel = localize('ariaLabelNavigationDisable', '{0}, {1}', navigationHint, disableHint); </del> <ins> let ariaLabel = ''; let helpHint = ''; if (this._configurationService.getValue(provider.verbositySettingKey) && provider.options.type !== 'help') { const accessibilityHelpKeybinding = this._keybindingService.lookupKeybinding('editor.action.accessibilityHelp')?.getLabel(); if (accessibilityHelpKeybinding) { helpHint = localize('ariaAccessibilityHelp', "Use {0} for accessibility help", accessibilityHelpKeybinding); } } if (helpHint) { ariaLabel = provider.options.ariaLabel ? localize('helpAriaKb', "{0}, {1}", provider.options.ariaLabel, helpHint) : localize('accessible-view', "Accessible View, {0}", helpHint); } else { ariaLabel = provider.options.ariaLabel ? provider.options.ariaLabel : localize('helpAriaNoKb', "Accessible View"); </ins> } this._editorWidget.updateOptions({ ariaLabel }); this._editorWidget.focus();

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


Question: "engines": { "vscode": "0.10.x" }, <del> "categories": [ </del> <ins> "categories": [ </ins> "Other" ], "activationEvents": [

<!-- 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. --Do not see similar issues here: Steps to Reproduce: interactive rebase click tab, "Copy path" file picker, paste path path file name from to . This is a file that git uses to track what is done. "Language mode" should be "Git Rebase Message" but it is not. I am using worktrees, but I don't think this is related, since has proper language detection.


Question: }); } <del> public setWidgetManager(widgetManager: TerminalWidgetManager) { </del> <ins> public setWidgetManager(widgetManager: TerminalWidgetManager): void { </ins> this._widgetManager = widgetManager; }

Testing Insiders dated 28th March, 2017 Happens in linux and windows <img width="333" alt="screen shot 2017-03-28 at 11 42 13 am" src=""


Question: sbomBuildDropPath: $(Agent.BuildDirectory)/vscode-server-win32-$(VSCODE_ARCH)-web sbomPackageName: "VS Code Windows $(VSCODE_ARCH) Web" sbomPackageVersion: $(Build.SourceVersion) <del> condition: and(succeededOrFailed(), ne(variables['WEB_PATH'], ''), ne(variables['VSCODE_ARCH'], 'arm64')) </del> <ins> condition: and(succeededOrFailed(), ne(variables['WEB_PATH'], '')) </ins> displayName: Publish web server archive - task: 1ES.PublishPipelineArtifact@1

It appears that this is possible now, and we should consider adopting this in VS Code ()
There is community interest:
Please add this!
Steps for verification: Connect to Windows arm64 using the latest pre-release of SSH extension () Verify that connection is successful Use or similar tool to confirm that executable is of architecture.


Question: get contentHeight(): number { const data = { followUpsHeight: getTotalHeight(this._elements.followUps), <del> chatWidgetHeight: this._chatWidget.contentHeight, </del> <ins> chatWidgetContentHeight: this._chatWidget.contentHeight, </ins> progressHeight: getTotalHeight(this._elements.progress), statusHeight: getTotalHeight(this._elements.status), extraHeight: this._getExtraHeight() }; <del> const result = data.progressHeight + data.chatWidgetHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; // console.log(`InlineChat#contentHeight ${result}`, data); </del> <ins> const result = data.progressHeight + data.chatWidgetContentHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; </ins> return result; } <ins> get minHeight(): number { // The chat widget is variable height and supports scrolling. It // should be at least 100px high and at most the content height. let value = this.contentHeight; value -= this._chatWidget.contentHeight; value += Math.min(100, this._chatWidget.contentHeight); return value; } </ins> protected _getExtraHeight(): number { return 12 /* padding */ + 2 /*border*/ + 12 /*shadow*/; }

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


Question: get contentHeight(): number { const data = { followUpsHeight: getTotalHeight(this._elements.followUps), <del> chatWidgetHeight: this._chatWidget.contentHeight, </del> <ins> chatWidgetContentHeight: this._chatWidget.contentHeight, </ins> progressHeight: getTotalHeight(this._elements.progress), statusHeight: getTotalHeight(this._elements.status), extraHeight: this._getExtraHeight() }; <del> const result = data.progressHeight + data.chatWidgetHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; // console.log(`InlineChat#contentHeight ${result}`, data); </del> <ins> const result = data.progressHeight + data.chatWidgetContentHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; </ins> return result; } <ins> get minHeight(): number { // The chat widget is variable height and supports scrolling. It // should be at least 100px high and at most the content height. let value = this.contentHeight; value -= this._chatWidget.contentHeight; value += Math.min(100, this._chatWidget.contentHeight); return value; } </ins> protected _getExtraHeight(): number { return 12 /* padding */ + 2 /*border*/ + 12 /*shadow*/; }

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


Question: import { DebugAdapterExecutable, DebugAdapterNamedPipeServer, DebugAdapterServer, ThemeIcon } from '../common/extHostTypes.js'; import { IExtHostVariableResolverProvider } from '../common/extHostVariableResolverService.js'; import { IExtHostWorkspace } from '../common/extHostWorkspace.js'; <ins> import { IExtHostTerminalShellIntegration } from '../common/extHostTerminalShellIntegration.js'; </ins> export class ExtHostDebugService extends ExtHostDebugServiceBase {

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


Question: import { DebugAdapterExecutable, DebugAdapterNamedPipeServer, DebugAdapterServer, ThemeIcon } from '../common/extHostTypes.js'; import { IExtHostVariableResolverProvider } from '../common/extHostVariableResolverService.js'; import { IExtHostWorkspace } from '../common/extHostWorkspace.js'; <ins> import { IExtHostTerminalShellIntegration } from '../common/extHostTerminalShellIntegration.js'; </ins> export class ExtHostDebugService extends ExtHostDebugServiceBase {

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


Question: import * as viewEvents from 'vs/editor/common/view/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorIndentGuides } from 'vs/editor/common/view/editorColorRegistry'; <del> import * as dom from 'vs/base/browser/dom'; </del> import { Position } from 'vs/editor/common/core/position'; export class IndentGuidesOverlay extends DynamicViewOverlay {

The rulers and indent guides do not display well on high pixel density displays VSCode Version: Version 1.21.0 (1.21.0) OS Version: macOS Sierra 10.12.6 (16G1212) Steps to Reproduce: out editor Does this issue occur when all extensions are disabled?: Yes Example !


Question: "default": false, "description": "%config.rebaseWhenSync%" }, <del> "git.fetchBeforeCheckout": { </del> <ins> "git.pullBeforeCheckout": { </ins> "type": "boolean", "scope": "resource", "default": false, <del> "description": "%config.fetchBeforeCheckout%" </del> <ins> "description": "%config.pullBeforeCheckout%" </ins> }, "git.fetchOnPull": { "type": "boolean",

Testing The feature is called . But it does more than fetch, it also pulls. Fetch typically only 'downloads' commits, but does not update any branches. Maybe the proper name would be:


Question: return this._validationMessage; } <del> set validationMessage(validationMessage: string | undefined) { </del> <ins> set validationMessage(validationMessage: string | InputBoxValidationMessage | undefined) { </ins> this._validationMessage = validationMessage; <del> this.update({ validationMessage, severity: validationMessage ? Severity.Error : Severity.Ignore }); } get validationMessage2() { return this._validationMessage2; } set validationMessage2(validationMessage: string | InputBoxValidationMessage | undefined) { checkProposedApiEnabled(this.extension, 'inputBoxSeverity'); this._validationMessage2 = validationMessage; </del> if (!validationMessage) { this.update({ validationMessage: undefined, severity: Severity.Ignore }); } else if (typeof validationMessage === 'string') {

<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --We already have this feature in Core: where you can return where . Truth be told, this already works in API today though it's not officially a part of the API today (so it could change at any moment). For example, I can do: <img width="738" alt="image" src="https://user-"with it goes from: to it goes from: to
ref
Created a TPI so moving this to April for Finalization.


Question: *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { EditorInput } from '../../../common/editor/editorInput.js'; import { EditorModel } from '../../../common/editor/editorModel.js'; import { URI } from '../../../../base/common/uri.js'; </del> <ins> import { Dimension } from '../../../../base/browser/dom.js'; </ins> import { DisposableStore, IReference } from '../../../../base/common/lifecycle.js'; <del> import { ITextEditorModel, ITextModelService } from '../../../../editor/common/services/resolverService.js'; import { marked, Tokens } from '../../../../base/common/marked/marked.js'; </del> <ins> import * as marked from '../../../../base/common/marked/marked.js'; import { Schemas } from '../../../../base/common/network.js'; </ins> import { isEqual } from '../../../../base/common/resources.js'; <del> import { moduleToContent } from '../common/walkThroughContentProvider.js'; import { Dimension } from '../../../../base/browser/dom.js'; import { EditorInputCapabilities, IUntypedEditorInput } from '../../../common/editor.js'; </del> <ins> import { URI } from '../../../../base/common/uri.js'; import { ITextEditorModel, ITextModelService } from '../../../../editor/common/services/resolverService.js'; </ins> import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js'; <del> import { Schemas } from '../../../../base/common/network.js'; </del> <ins> import { EditorInputCapabilities, IUntypedEditorInput } from '../../../common/editor.js'; import { EditorInput } from '../../../common/editor/editorInput.js'; import { EditorModel } from '../../../common/editor/editorModel.js'; import { markedGfmHeadingIdPlugin } from '../../markdown/browser/markedGfmHeadingIdPlugin.js'; import { moduleToContent } from '../common/walkThroughContentProvider.js'; </ins> class WalkThroughModel extends EditorModel {

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --<!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: Version: 1.93.0-insider (user setup) Commit: Date: 2024-09-04T13:13:15.344Z Electron: 30.4.0 ElectronBuildId: Chromium: 124.0.6367.243 20.15.1 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0. OS Version: Windows 11 Insiders Steps to Reproduce: in the first paragraph doesn't appear to be a link, which I was surprised about: ! I hover over it, I see it's supposed to be a link, but clicking on it does nothing: ! The other docs links at the bottom of the playground appear correctly as links and do open when I click on them: !
This seems related to the bookmark issue we had in the release notes. The other bookmark links in the interactive playground don't work either.
Fixed the toc links. Need another fix for the documentation link too (which use command uris)
The Editor Playground is not showing at all anymore in the latest insiders. When selecting the Editor Playground menu item, a black editor comes up.
hm working from oss builds. Insiders, it seems like the error is:
Actually unrelated. Seems like a duplicate of and fixed by


Question: import { AccessibilitySupport, IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { TabFocus, TabFocusContext } from 'vs/editor/browser/config/tabFocus'; <ins> import { accessibilityHelpIsShown } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; </ins> const CONTEXT_ACCESSIBILITY_WIDGET_VISIBLE = new RawContextKey<boolean>('accessibilityHelpWidgetVisible', false);

It doesn't matter in this case, but note that you collect all the keyListener disposables in the store of the AccessibleView class (even if you dispose them in , but the disposable is still in the disposableStore). This can lead to memory leaks. I can really recommend to compose components according to their life times. I think here the lifetime of the rendered content is owned by the caller of (the caller is supposed to call on the result). So the disposable returned by should be owned by whatever you return in . I suggest to create a DisposableStore in render, push the key listener to it once the text model resolves and return the disposable store at the end of render (also add the to the store). Also, note that the getTextModel promise can resolve after the caller called dispose. Originally posted by in


Question: const actionsElement = $('div.actions'); this._actions.forEach(action => this._renderAction(actionsElement, action)); statusBarElement.appendChild(actionsElement); <del> this._domNode.appendChild(statusBarElement); </del> <ins> this._containerDomNode.appendChild(statusBarElement); </ins> } this._mouseTracker = new CompositeMouseTracker([this._containerDomNode, ..._target.targetElements]);

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --Steps to Reproduce: long variables that cause scroll them that the scrollbar gets in the way of the "relaunch terminal" button


Question: return this.editorService.openEditor({ resource: this.defaultSettingsRawResource }, EditorPosition.ONE) as TPromise<any>; } <ins> openRawUserSettings(): TPromise<void> { return this.editorService.openEditor({ resource: this.userSettingsResource }) as TPromise<any>; } </ins> openSettings(): TPromise<IEditor> { const editorInput = this.getActiveSettingsEditorInput() || this.lastOpenedSettingsInput; const resource = editorInput ? editorInput.master.getResource() : this.userSettingsResource;

We have a setting to disable the settings split view, but it might be useful to have a command to open the user outside of the split view for a one-off. From
I am reverting the PR, it actually doesn't work. We intercept the editor open here:
Damn, it's already a part of my workflow . What's wrong with it?
So it opens the raw outside of the split view for you? For me, it actually just acts the same as the normal open settings command and opens the settings split view.
And you don't have ?
I don't have . The command itself works for me. Does it break some other functionality? ! OS version: Windows_NT x64 10.0.
I see now. Opens a split view on linux VM. Was it ever working before on non-Windows environments?
Yeah it only works on Windows, because the == check with fspath can fail due to drive letters being different. I guess that's a separate bug... I'll revert this tomorrow.
We got a good bug out of this:
Now that the settings UI exists, I don't plan on investigating much more on the JSON editor. The split JSON UI will probably go away at some point (the JSON files themselves will always remain)
BUT I CAN'T OPEN SETTINGS FILE (WITHOUT SPLIT) NOW AT ALL BECAUSE IT'S NOT LETTING ME. Are you planning to allow users to see plain json file or to forbid it completely?
We will always allow users to see the json file. Hopefully you can still open the raw json file with .
I know about that option, it's not great.
I'll close this just because I am cleaning up issues that are specific to the JSON split editor. But to be clear, editing the JSON file will never go away :)


Question: editorMargin: 0, metadataHeight: 0, cellStatusHeight, <del> metadataStatusHeight: 25, </del> <ins> metadataStatusHeight: this.ignoreMetadata ? 0 : 25, </ins> rawOutputHeight: 0, outputTotalHeight: 0, <del> outputStatusHeight: 25, </del> <ins> outputStatusHeight: this.ignoreOutputs ? 0 : 25, </ins> outputMetadataHeight: 0, bodyMargin: 32, totalHeight: 82 + cellStatusHeight + editorHeight,

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


Question: window.localStorage.removeItem(WebLocaleService._LOCAL_STORAGE_LOCALE_KEY); window.localStorage.removeItem(WebLocaleService._LOCAL_STORAGE_EXTENSION_ID_KEY); <del> if (Language.value() === navigator.language) { </del> <ins> if (Language.value() === navigator.language.toLowerCase()) { </ins> return; }

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: : 1.81.0-insider : : 2023-07-12T11:13:11.418Z : Mozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 OS Version: Mac os 12.2.1 (21D62) Steps to Reproduce: Configuration Display Language to . devtools after page auto refresh !
eg. does not exist, but exists.
thanks for working on this. The true fix for this issue actually needs to be in 's source code. I've made that fix and this should work for you now. Let me know if you still see any trouble.


Question: picker.items = makeSnippetPicks(); }); picker.items = makeSnippetPicks(); <ins> if (!picker.items.length) { picker.validationMessage = nls.localize('pick.noSnippetAvailable', "No snippet available"); } </ins> picker.show(); // wait for an item to be picked or the picker to become hidden

<!-- 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. --Executing "Surround with snippet" from the command palette while there's no surround-able snippet, results in an empty pick list: ! Shouldn't it be like showing an information message saying there's no snippet to pick, or just not prompting the user to pick anything?
Prompt might be too annoying but quick pick itself might have a way to show a lightweight in-place message
Do you mean something like this (using )? !
Just submitted the PR. Could you please check it?


Question: this.updateActions(); if (!shouldShowFilterInHeader) { append(this.filterContainer!, this.filterWidget.element); <del> height = height - 44; </del> } } <ins> if (!shouldShowFilterInHeader) { height = height - 44; } </ins> this.filterWidget.layout(width); this.layoutBodyContent(height, width); }

Issue Type: <bBug</bthe integrated console viewlets to a vertical layout the viewlet narrow When wide enough: ! Once narrowed: ! Expected result: Debug Console search bar shrinks/hides itself in order to show other tabs first (like in the first screenshot). The 3 dots "works", but is, at least in my opinion, more annoying than not being able to search in the Debug Console when the viewlet is narrow. VS Code version: Code 1.63.2 (, 2021-12-15T09:40:02.816Z) OS version: WindowsNT x64 10.0. Restricted Mode: No <details<summarySystem Info</summary </details<!-- generated by issue reporter --
The min width is 300, I think that can be narrower. The problems view filter input goes into the body when the view is too narrow, which is sorta cool <img width="571" alt="image" src="https://user-"but I won't implement that right now
Actually it was easy to opt into that. I tweaked the min widths and also when the pane is narrow, the filter box will move down into the body
Holy, I forgot about this issue! Love the idea of copying the behaviour of the Problems tab! Excited to try it on Insiders :) Thanks !


Question: cursors.setStates( args.source, CursorChangeReason.Explicit, <del> CursorMoveCommands.addCursorUp(context, cursors.getAll()) </del> <ins> CursorMoveCommands.addCursorUp(context, cursors.getAll(), useLogicalLine) </ins> ); cursors.reveal(true, RevealTarget.TopMost, ScrollType.Smooth); } } export class InsertCursorBelow extends EditorAction { constructor() { super({ id: 'editor.action.insertCursorBelow',

VSCode Version: 0.10.11 OS Version: OS X 10.10.5 Steps to Reproduce: a long line of text that wraps in the editor the cursor on the first line and press Cmd-Option-Down (on OS X). This creates a second cursor on the next visual line, which means it is somewhere on the same logical line depending on how the text is wrapped. When creating multiple cursors on adjacent lines, often it is to perform the same edit on multiple (logical) lines that are aligned with each other. The current behavior having the second cursor appear instead at some situation-specific place on the same logical line throws a wrench in this workflow. I can't think of a good situation where it makes sense (though I do realize it is consistent with pressing the down arrow without cmd-option) Definitions: a logical line is a line in the file on disk. A visual line is a line in the editor. A logical line may span multiple visual lines when there is wrapping.


Question: bugsUrl: manifest.bugs && manifest.bugs.url, displayName: manifest.displayName, id: extension.identifier.id, <del> isTheme: isTheme </del> <ins> isTheme, isBuiltin, </ins> }; }); const theme = this.themeService.getColorTheme(); const issueReporterData: IssueReporterData = assign({ styles: getIssueReporterStyles(theme), zoomLevel: webFrame.getZoomLevel(), <del> enabledExtensions: extensionData </del> <ins> enabledExtensions: extensionData, </ins> }, dataOverrides); return this.issueService.openReporter(issueReporterData); }

Feature Request The command takes an extension argument so that extensions can open an issue reporter for that extension. I'd like to use this for the built-in JS/TS extension as well but cannot at the moment: It'd be nice if for VS Code builtin extensions, we automatically changed the field to
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!


Question: category, keybinding: { weight: KeybindingWeight.WorkbenchContrib, <del> when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, Constants.FirstMatchFocusKey), </del> <ins> when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, ContextKeyExpr.or(Constants.FirstMatchFocusKey, CONTEXT_ACCESSIBILITY_MODE_ENABLED)), </ins> primary: KeyMod.CtrlCmd | KeyCode.UpArrow, }, });

CC In , you type something in the input field and hit enter. When search result pops up, you need to press tab key tediously mutiple times to land in the search result treeview. It would be better if the search result tabindex could be adjusted so that users can quickly jump into the treeview after providing the search term (e.g., pressing from the search input field goes to the result treeview). Another way is pressing key in the search input field moves user focus to the search result treeview directly. Version: 1.78.0-insider (system setup) Commit: Date: 2023-04-04T09:32:52.453Z Electron: 22.4.3 Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes
The latter option is preferred for a screen reader user's better navigability.
what do you think of this suggestion?
You can press ctrl+down/up to move between the input and the tree immediately, does that help? I don't quite understand the suggestion, that the tree come before the search input in the the tab order? And with pressing enter to move focus to the tree, I think that doing multiple searches while tweaking your search query is a common workflow, and this would interrupt that, but maybe something like that could be configurable.
If you want to jump directly to the results, you could add a keybinding like The command will focus the results view.
and -- Thanks for sharing great tips! I did not even know that I could use Ctrl+Down/Up Arrows. This is working very well. -- I think this is now a "discoverability" issue. I recommend adding an aria-label or other similar techniques to remind screen reader users of these Ctrl+Down/Up key commands.
I did not know that either, so agree that this is a discoverability problem. does it make sense to you to add this hint to the ?
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it.


Question: category, keybinding: { weight: KeybindingWeight.WorkbenchContrib, <del> when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, Constants.FirstMatchFocusKey), </del> <ins> when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, ContextKeyExpr.or(Constants.FirstMatchFocusKey, CONTEXT_ACCESSIBILITY_MODE_ENABLED)), </ins> primary: KeyMod.CtrlCmd | KeyCode.UpArrow, }, });

To learn more about how we handle feature requests, please see our . Happy Coding!
Yes, I could add it as an on the search text box. Is there an example elsewhere that I can follow in terms of adding a hint?
Here's what we do for the terminal's
I have found that Ctrl+UpArrow does not work when the keyboard focus is on the last item in the search result. Ctrl+Up only works in the first search result item.
The context key is why it only works for the first item: . Removing will do what you want
-- Shouldn't it be removed by default for other users? It does not make sense it only works in the first item if we want to generalize this behavior.
do you know why was applied here?
I'm guessing that it's because users wanted a keybinding that allowed them to move to the query fields when there were no more results to see. do you happen to know why it's like this and whether we can remove the check for ?
That keybinding also does other things- on mac. I didn't want to interfere with normal list keybindings. If this would be really useful, we could add a new keybinding which doesn't have that context key? Or users can customize it that way for themselves too?
On mac when the search results are focused, does not do anything.
It works for me
Ah yeah I see it working now. hb as it seems like it is more important to be able to get back to the search box in this case than to scroll one line up?
I think I'd rather leave the typical list navigation commands alone, but if it's just behind tbh I'll defer to you. But I also remember that the ctrl+shift+F shortcut should just focus the search input too, if that helps.
Since is a pattern we use elsewhere and screen reader users already have a high cognitive load placed upon them, I think we should follow suit here behind that flag.
To verify: With , search for something, navigate in the search results, and use to return to the search input fields


Question: import { CancellationToken } from 'vs/base/common/cancellation'; import { isUNC } from 'vs/base/common/extpath'; import { Schemas } from 'vs/base/common/network'; <del> import { sep } from 'vs/base/common/path'; </del> <ins> import { normalize, sep } from 'vs/base/common/path'; </ins> import { URI } from 'vs/base/common/uri'; import { FileOperationError, FileOperationResult, IFileService } from 'vs/platform/files/common/files'; import { ILogService } from 'vs/platform/log/common/log';

An information disclosure vulnerability exists in VS Code 1.71 and earlier versions. If an attacker is able to run arbitrary scripts inside of a webview (either created by extension or by core VS Code), the attacker could bypass the local resource roots check to read arbitrary files on the user's system The fix is available starting with VS Code 1.71.1. The mitigates this attack by performing input validation on the URL pointing to the repository to be cloned. Only use webviews from extensions that follow proper security measures to block script injection Do not disable VS Code's default security measures in the built-in markdown preview The patch for this can be found at An advisory for this can be found at MSRC details for this can be found at
Hi, just curious about this: The description of the vulnerability ends mid-sentence. I see the same phrasing on the GHSA advisory as well: Can it be revised to be clearer what is the nature of the vulnerability? (And of course: Thanks for finding and fixing it, and for making these advisories! Transparency and security are appreciated!)
Updated
Should the references to 1.71 in fact be 1.72?


Question: [deltaY, deltaX] = [deltaX, deltaY]; } <del> if (this._options.scrollYToX && !deltaX) { </del> <ins> // Convert vertical scrolling to horizontal if shift is held, this // is handled at a higher level on Mac const shiftConvert = !Platform.isMacintosh && e.browserEvent.shiftKey; if ((this._options.scrollYToX || shiftConvert) && !deltaX) { </ins> deltaX = deltaY; deltaY = 0; }

VSCode Version: Code - Insiders 1.12.0-insider (, 2017-04-13T06:10:58.128Z) OS Version: Windows_NT ia32 6.1.7601 Extensions: the listing exceeds the lower minimum of browsers' URL characters limit Steps to Reproduce: any file and try to horizontal scroll either via mouse wheel or shift scroll.
Hello i'm still experiencing this issue , I've noticed a separate issue was closed for Ubuntu users, but still noticing this with Windows.
This seems to be fixed in the latest release.
correction, this issue still exists.
/cc I'm seeing this issue again as well, on my Ubuntu work machine and on Windows: VSCode Version: Code - Insiders 1.12.0-insider (, 2017-04-21T06:12:00.370Z) OS Version: Windows_NT ia32 10.0. Extensions: ;
Some more info: shift+mouse wheel does not work, however when I use the trackpad and two finger swipe horizontally it works fine. Unplugging and plugging in the mouse again didn't fix it.
Hmm the trackpad usually is for forward and back commands. I can confirm this is the same case for me. I'm wondering if electron has switched the forward and back commands for the horizontal scrolling. Because in my mouse settings if I set the horizontal scroll will to page forward and backward it works perfectly. But I shouldn't have to do that.
I tried to reproduce and failed with my setup (Windows 10 and Windows 7 on macOS running in Parallels). Here is what I try: shift-scrolling in the editor wheel-left/right in the editor ! Are you doing something different? Does it reproduce when you run with blank settings?
I tried to reload vscode insiders without any settings, and i'm still having the same experience.
One other note, I have mac os sierra at my home workstation and everything works perfectly there. It seems to be Windows specific. I'm running Windows 7
Here are errors and warnings upon restarting insiders without typing anything. I wonder if this has anything to do with it.
I assume those warnings would go away when you run code . I would not assume however that this would help you for this issue, but worth a try anyway.
I wonder if we could do a little experiment.


Question: [deltaY, deltaX] = [deltaX, deltaY]; } <del> if (this._options.scrollYToX && !deltaX) { </del> <ins> // Convert vertical scrolling to horizontal if shift is held, this // is handled at a higher level on Mac const shiftConvert = !Platform.isMacintosh && e.browserEvent.shiftKey; if ((this._options.scrollYToX || shiftConvert) && !deltaX) { </ins> deltaX = deltaY; deltaY = 0; }

Can you: download run it from the window that opens make it small enough that horizontal scrollbars appear see if you can scroll ! If so, this would point to a general problem with our UI framework (electron) and we should report it there.
seems to be this line that's throwing an error which may be causing the scroll to not work.
I would think that is unrelated, but please follow my steps to find out more.
I downloaded () on the Linux machine that I can reproduce it on and I can scroll just fine. ! Note that after this gif I updated to latest and it still doesn't work on:
Sorry I didn't see your message until just now. Yes it scrolls fine. On Mon, Apr 24, 2017, 10:31 AM Daniel Imms <:
need your help here for more debugging. First thing that comes to my mind is to add a breakpoint into  to see if this is even triggered when scrolling horizontally?
it's hit, but is set, not as I would expect. ! is set though: ! Are we meant to handle manually?
any chance you could debug stable to verify that e.deltaX is set? Is there any other property that has an increasing value? /cc if you have any clues on this Looking for chrome issues I stumbled upon:
Fixed via
Thank you guys, very much appreciated. Have realized over the last few days just how much I depend on horizontal scrolling.
As i'm not familiar with the insiders release pattern, any idea when we can expect this to come down the pipeline ?
should be in tomorrow's Insiders build
Thank you Daniel Imms <:


Question: import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging'; import { Event } from 'vs/base/common/event'; import { IExtension, ExtensionContainers, ExtensionState, IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions'; <del> import { UpdateAction, ManageExtensionAction, ReloadAction, ExtensionStatusLabelAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, WebInstallAction, SwitchToPreReleaseVersionAction, SwitchToReleasedVersionAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; </del> <ins> import { UpdateAction, ManageExtensionAction, ReloadAction, ExtensionStatusLabelAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, WebInstallAction, SwitchToPreReleaseVersionAction, SwitchToReleasedVersionAction, MigrateDeprecatedExtension } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; </ins> import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { RatingsWidget, InstallCountWidget, RecommendationWidget, RemoteBadgeWidget, ExtensionPackCountWidget as ExtensionPackBadgeWidget, SyncIgnoredWidget, ExtensionHoverWidget, ExtensionActivationStatusWidget, PreReleaseBookmarkWidget, extensionVerifiedPublisherIconColor } from 'vs/workbench/contrib/extensions/browser/extensionsWidgets'; import { IExtensionService, toExtension } from 'vs/workbench/services/extensions/common/extensions';

a deprecated extension, for example Bracket Pair Colorizer extensions viewlet -notice how it is not very visible that the extension is deprecated. If the user wants to migrate they have to click on "configure these settings" and uninstall the extension 's solve both of these things by rendering a "Migrate" button for deprecated extensions that have alternatives The migrate button would be similar to the Update button in looks, but it would either: Install the alternative extension, uninstall the deprecated one Uninstall the deprecated extension, open settings view with the desired settings shown
I do not like Migrate button for an extension like Bracket Pair Colorizer that needs settings to configured. It felt little weird to me enabling Migrate button for this extension and opening settings editor but not applying any settings to migrate. Hence I enabled this button only for those extensions with alternate extensions <img width="1120" alt="image (2)" src="https://user-"
that makes great sense, thanks! I plan to try this out as soon as there is a new insiders out. Feel free to close this issue then :)
I just tried the latest insiders which should have your changes. However I do not see the Migrate button in the Extensions details view. Also it would be cool if the button was also in the extensions viewlet. Similar to the button. !
Its because alternate extension is already installed and migrating is just uninstalling the the deprecated extension. I thought it might be too aggressive to show in Extensions Viewlet. What if users do not want to migrate and they always see it in extensions viewlet?
you are right. When I uninstall eslint all is good and the button gets rendered in the extension details - cool! Extensions viewlet - as for users not wanting to migrate and still seeing it - I think that is fine. It is the same if you do not want to update and you always see "reload required". It is an update, it is just an update to a different extension. I do not find this too aggressive, especially since we want to push users off deprecated extensions.
Makes sense. Showing Migrate action in extensions view (without extension name) <img width="293" alt="image" src="https://user-"
Awesome, thanks! Let's see what the users says about the full flow and how it goes during endgame :)


Question: return TPromise.as(true); } <del> } </del>  No newline at end of file <ins> } </ins>

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


Question: // Avoid adding cache busting if there is already a query string if (resource.query) { <del> return webviewEditor.webview.asWebviewUri(resource).toString(true); </del> <ins> return webviewEditor.webview.asWebviewUri(resource).toString(); </ins> } <del> return webviewEditor.webview.asWebviewUri(resource).with({ query: `version=${version}` }).toString(true); </del> <ins> return webviewEditor.webview.asWebviewUri(resource).with({ query: `version=${version}` }).toString(); </ins> } private extensionResource(path: string) {

Issue Type: <bBug</bIf I try to open an image with a name such as 'test-' it says 'An error occurred while loading the image'. In the developer console, the following error is shown: VS Code version: Code 1.44.2 (, 2020-04-16T17:07:18.473Z) OS version: Darwin x64 19.4.0 <details<summarySystem Info</summary </detailsExtensions: none <!-- generated by issue reporter --
Looks like the problem is on the , line 22 We got , which is a string looks like it is correct. Next, when we do it becomes an object and the paths are not correct here. Going down into the () i found that the string is being processed inside the by the This piece of code takes the string, and tries to decode any part started from %, thats why %41 becomes A
I don't think the decoding process is faulty, but the encoding part. Every browser will interpret as . ! So the url should escape in the first place. !
You're right. The percent ("%") character is missed in the encodeTable, and in the encodeURIComponentMinimal() 562 line.


Question: import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleWholeWordKeybinding } from 'vs/editor/contrib/find/browser/findModel'; import { category, getSearchView, openSearchView } from 'vs/workbench/contrib/search/browser/searchActionsBase'; <ins> import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from 'vs/platform/accessibility/common/accessibility'; </ins> //#region Actions: Changing Search Input Options registerAction2(class ToggleQueryDetailsAction extends Action2 {


Question: import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleWholeWordKeybinding } from 'vs/editor/contrib/find/browser/findModel'; import { category, getSearchView, openSearchView } from 'vs/workbench/contrib/search/browser/searchActionsBase'; <ins> import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from 'vs/platform/accessibility/common/accessibility'; </ins> //#region Actions: Changing Search Input Options registerAction2(class ToggleQueryDetailsAction extends Action2 {


Question: this.inSelectionToggle = this._register(new Toggle({ icon: findSelectionIcon, <del> title: NLS_FIND_IN_CELL_SELECTION_BTN_LABEL, </del> <ins> title: NLS_TOGGLE_SELECTION_FIND_TITLE, </ins> isChecked: false, inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground), inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),

Testing I found "Find in Cell Selection" confusing label for the button given it is to find in selected cells. Does it make sense? Would "Find in Selected Cells" be a bit easier? !
Yeah, agreed that the labeling isn't perfect. Will workshop this in the next iteration, as this button will be serving dual purpose as a way to search in textual selections within a cell, as well as searching in multi-cell selections as the feature is currently. Thanks for the feedback!


Question: this.inSelectionToggle = this._register(new Toggle({ icon: findSelectionIcon, <del> title: NLS_FIND_IN_CELL_SELECTION_BTN_LABEL, </del> <ins> title: NLS_TOGGLE_SELECTION_FIND_TITLE, </ins> isChecked: false, inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground), inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),

Notebooks: ! Editor: ! Version: 1.90.0-insider Commit: Date: 2024-05-28T05:48:32.492Z Electron: 29.4.0 ElectronBuildId: Chromium: 122.0.6261.156 20.9.0 V8: 12.2.281.27-electron.0 OS: Darwin arm64 23.4.0


Question: this.inSelectionToggle = this._register(new Toggle({ icon: findSelectionIcon, <del> title: NLS_FIND_IN_CELL_SELECTION_BTN_LABEL, </del> <ins> title: NLS_TOGGLE_SELECTION_FIND_TITLE, </ins> isChecked: false, inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground), inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),

Type: <bBug</bThe default width feels small, especially that we have 4 icons in the notebook find widget. It can only render 6 characters and then truncate. ! VS Code version: Code - Insiders 1.88.0-insider (, 2024-03-28T22:10:25.599Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (27)</summaryExtensionVersion ------ esbuild-problem-matchers0.0.3 vscode-eslint2.4.4 vscode-deno3.36.0 gitlens2024.3.2805 EditorConfig0.16.4 prettier-vscode10.4.0 copilot1.176.0 copilot-chat0.14. vscode-pull-request-github0.85. vscode-mocha-test-adapter2.14.1 vscode-test-explorer2.21.1 vscode-dotnet-runtime2.0.3 black-formatter2024.1. debugpy2024.2.0 isort2023.10.1 python2024.3. vscode-pylance2024.3.102 datawrangler0.29.6 jupyter2024.3. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.353.0 extension-test-runner0.0.6 test-adapter-converter0.1.9 vscode-github-issue-notebooks0.0.130 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --


Question: "An existing tunnel is running on this machine, connecting to it..." ); <del> let stdin_handle = rpc.get_caller(msg_tx.clone()); thread::spawn(move || { let mut input = String::new(); loop { input.truncate(0); match std::io::stdin().read_line(&mut input) { Err(_) | Ok(0) => return, // EOF or not a tty _ => {} }; match input.chars().next().map(|c| c.to_ascii_lowercase()) { Some('x') => { stdin_handle.notify(protocol::singleton::METHOD_SHUTDOWN, EmptyObject {}); return; </del> <ins> if *IS_INTERACTIVE_CLI { let stdin_handle = rpc.get_caller(msg_tx.clone()); thread::spawn(move || { let mut input = String::new(); loop { input.truncate(0); println!("reading line"); match std::io::stdin().read_line(&mut input) { Err(_) | Ok(0) => return, // EOF or not a tty _ => {} }; match input.chars().next().map(|c| c.to_ascii_lowercase()) { Some('x') => { stdin_handle.notify(protocol::singleton::METHOD_SHUTDOWN, EmptyObject {}); return; } Some('r') => { stdin_handle.notify(protocol::singleton::METHOD_RESTART, EmptyObject {}); } Some(_) | None => {} </ins> } <del> Some('r') => { stdin_handle.notify(protocol::singleton::METHOD_RESTART, EmptyObject {}); } Some(_) | None => {} </del> } <del> } }); </del> <ins> }); } </ins> let caller = rpc.get_caller(msg_tx); let mut rpc = rpc.methods(SingletonServerContext {

Version: 1.78.0-insider (user setup) Commit: Date: 2023-04-04T09:32:52.453Z Electron: 22.4.3 Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes run from a Windows command prompt The tunnel starts and prints open VS Code, and open the output Note that the output is stuck at Missing are the message and the info that the tunnel is attached The UI thinks the tunnel is still connecting. Sometimes this also works, but when I try it, most of the time it is stuck
Can you please enable trace logging and share the output?
Nothing extra messages shown when the Desktop tunnel attaches:
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Still a problem in Version: 1.78.0-insider (user setup) Commit: Date: 2023-04-12T05:19:38.288Z Reproduces every time I try it
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!


Question: import { LinkDetector } from 'vs/editor/contrib/links/browser/links'; import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; <ins> import { IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; </ins> import { IContextViewDelegate, IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IInstantiationService, createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IOpenerService } from 'vs/platform/opener/common/opener';

It doesn't matter in this case, but note that you collect all the keyListener disposables in the store of the AccessibleView class (even if you dispose them in , but the disposable is still in the disposableStore). This can lead to memory leaks. I can really recommend to compose components according to their life times. I think here the lifetime of the rendered content is owned by the caller of (the caller is supposed to call on the result). So the disposable returned by should be owned by whatever you return in . I suggest to create a DisposableStore in render, push the key listener to it once the text model resolves and return the disposable store at the end of render (also add the to the store). Also, note that the getTextModel promise can resolve after the caller called dispose. Originally posted by in


Question: this._last = null; } <ins> public length(): number { let result = 0; let current = this._first; while (current) { current = current.next; result++; } return result; } </ins> public peek(): T | null { if (!this._first) { return null;

I've had an SSH window open in the background and noticed that it keeps going through reconnection. Looking at the logs, it looks like vscode is often triggering reconnection, even though nothing strange is going on with my network, as far as I know. Noticed this at home and also the office network. This is the log from vscode. The SSH log doesn't show anything unusual before the resolver is invoked again. Has anything changed here lately?
Sorry this issue fell through the cracks. Are you still running into this?
Yes
Do you perhaps have a log with tracing enabled? The reason in the original log appears to be timeout. That is triggered here -- So the conditions are: a message was written to the socket 20 seconds ago and the server side didn't acknowledge it (and) no data was received from the server within the past 20 seconds (and) no previous timeout event was fired within the past 20 seconds (this just avoid sending many timeout events) (and) the renderer process appears responsive (Just speculating) I think we have fixed something in the terminal land and we now no longer send any data in an idle window. Could it be that your window becomes idle and the connection is dropped by SSH? (I believe due to some terminal heartbeat mechanism there was always data being written every 5 seconds, but now that is no longer happening).
Well, now I can't repro it.
I've more logging via . Please keep an eye out. In case you hit this again, the logging will have more data.
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Finally got it
It seems like the log message you touch didn't show up there. But, it does show up in an earlier reconnection in this window (before I enabled trace logging). So I'll just share the full logs This shows a window that was mostly idle with 2 reconnections, the second one had logging at the trace level enabled
Here's my interpretation: the management connection timed out at due to our own timeout logic. We wrote one message and that message didn't get acknowledged within 20s by the server. As an observation, the connection didn't receive any bytes from the server within 320s (5 minutes).


Question: this._last = null; } <ins> public length(): number { let result = 0; let current = this._first; while (current) { current = current.next; result++; } return result; } </ins> public peek(): T | null { if (!this._first) { return null;

this resulted in the core invoking on the SSH extension and the SSH extension replied with a new port i.e. instead of the previous . the extension host connection immediately closed at with code , indicating that perhaps the previous tunnel at was killed as part of invoking . Precisely 20 minutes later, at , both management and extension host connections receive a event from Chromium. I can't quite explain the first timeout, why would the server not acknowledge a message within 20 seconds? But the timing of the second disconnection seems to indicate to me that after 20 min of idleness, the underlying connection is closed. Anyone could be closing it: either on the client side by Chromium or the OS, either on the server side by nodejs or the OS, either by the SSH tunnel timing out. For the second disconnection I think we might need to do something to tackle . For a long time the terminal was doing a heartbeat mechanism which resulted in data being sent over the wire (and that would not make the connection idle), but that was fixed via Right now, if you are really idle in a window, the underlying connection will be idle too and I think the OS or someone closes it as idle after 20 minutes.
My best guess is some other weird optimization where network requests don't even get delivered when an app is in the background. I've noticed this in windows that are not focused
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!


Question: extHostContext: IExtHostContext, @IStorageService storageService: IStorageService, @IExtensionsStorageSyncService extensionsStorageSyncService: IExtensionsStorageSyncService, <ins> @ILogService private readonly _logService: ILogService </ins> ) { this._storageService = storageService; this._extensionsStorageSyncService = extensionsStorageSyncService;

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


Question: extHostContext: IExtHostContext, @IStorageService storageService: IStorageService, @IExtensionsStorageSyncService extensionsStorageSyncService: IExtensionsStorageSyncService, <ins> @ILogService private readonly _logService: ILogService </ins> ) { this._storageService = storageService; this._extensionsStorageSyncService = extensionsStorageSyncService;

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


Question: extHostContext: IExtHostContext, @IStorageService storageService: IStorageService, @IExtensionsStorageSyncService extensionsStorageSyncService: IExtensionsStorageSyncService, <ins> @ILogService private readonly _logService: ILogService </ins> ) { this._storageService = storageService; this._extensionsStorageSyncService = extensionsStorageSyncService;

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


Question: >> And, they can be nested 1. A numbered list <ins> > Block quotes in list </ins> 2. Which is numbered 3. With periods and a space

VSCode Version: Code 1.18.0 (, 2017-11-08T21:19:36.079Z) OS Version: Windows_NT ia32 6.1.7601 Lists shift the indentation by the level of depth in the list hierarchy. This is just a very minor thing, but the is no longer syntax highlighted when a quote is part of a list item and thus indented. ! Steps to Reproduce: markdown file. a list. a quote to one of the items by indenting the quote. Reproduces without extensions: Yes


Question: override async run(accessor: ServicesAccessor, match: RenderableMatch | undefined): Promise<any> { const quickInputService = accessor.get(IQuickInputService); const searchText = getSearchText(accessor) ?? ''; <del> quickInputService.quickAccess.show(TEXT_SEARCH_QUICK_ACCESS_PREFIX + searchText); </del> <ins> quickInputService.quickAccess.show(TEXT_SEARCH_QUICK_ACCESS_PREFIX + searchText, { preserveValue: !!searchText }); </ins> } });

We support for auto-populating selected text to quick search (), but setting overrides this. This is because takes precedence over any default string (even if is defined). (from )
To me, this feels backwards... I'd want whatever was passed in to take precedence... and only if the default is set to the default value (aka the prefix) should the LAST be restored. was there a reason for this behavior that maybe I don't know about?
I do not remember. I assume you already bisected this to the origins?
the origin of this change came from: I now understand why this code behaves like it does. It's because it's provider (& prefix) agnostic. This code actually knows nothing about the prefix and nothing about the provider except the last accepted value per-provider. So basically, it's up to the caller of to say no don't .
I've sent a PR that makes the search one work as we expect.
verif steps: command, then search for some text and select one of the results. step 2, but make sure that the input that previously had is retained once you run the command. something in the pick to close it, then highlight some text in the editor. again. You should see your highlighted text in the input box.


Question: DOM.addStandardDisposableListener(inputBox.inputElement, DOM.EventType.KEY_DOWN, (e: IKeyboardEvent) => { if (e.equals(KeyCode.Enter)) { if (inputBox.validate()) { <del> done(true); </del> <ins> done(true, true); </ins> } } else if (e.equals(KeyCode.Escape)) { <del> done(false); </del> <ins> done(false, true); </ins> } }), blurDisposable,

<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --Steps to Reproduce: rename on a top level file element in explorer view in single folder workspace in developer tools that the div for that file row contains multiple invisible children elements which are input element containers !
I can not reproduce this issue on my machine. How do you end the rename, with Esc, Enter or some other way? Are you doing anything else that is special?
I just press continuously. I can reproduce this easily on linux(ubuntu) and windows. The setup it's just a folder with a single file and I drag and drop the folder on vscode.
Yes I can reproduce now.
This might happen again on tomorrow's vscode insiders. Thus unlocking converstaion so we can open this issue if needed.
You are right I can repro this again.


Question: const NLS_FIND_INPUT_LABEL = nls.localize('label.find', "Find"); const NLS_FIND_INPUT_" = nls.localize('placeholder.find', "Find"); const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize('label.previousMatchButton', "Previous Match"); <del> // const NLS_FILTER_BTN_LABEL = nls.localize('label.findFilterButton', "Search in View"); </del> const NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', "Next Match"); <del> const NLS_FIND_IN_CELL_SELECTION_BTN_LABEL = nls.localize('label.findInCellSelectionButton', "Find in Cell Selection"); </del> <ins> const NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize('label.toggleSelectionFind', "Find in Selection"); </ins> const NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', "Close"); const NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize('label.toggleReplaceButton', "Toggle Replace"); const NLS_REPLACE_INPUT_LABEL = nls.localize('label.replace', "Replace");


Question: const NLS_FIND_INPUT_LABEL = nls.localize('label.find', "Find"); const NLS_FIND_INPUT_" = nls.localize('placeholder.find', "Find"); const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize('label.previousMatchButton', "Previous Match"); <del> // const NLS_FILTER_BTN_LABEL = nls.localize('label.findFilterButton', "Search in View"); </del> const NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', "Next Match"); <del> const NLS_FIND_IN_CELL_SELECTION_BTN_LABEL = nls.localize('label.findInCellSelectionButton', "Find in Cell Selection"); </del> <ins> const NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize('label.toggleSelectionFind', "Find in Selection"); </ins> const NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', "Close"); const NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize('label.toggleReplaceButton', "Toggle Replace"); const NLS_REPLACE_INPUT_LABEL = nls.localize('label.replace', "Replace");


Question: const NLS_FIND_INPUT_LABEL = nls.localize('label.find', "Find"); const NLS_FIND_INPUT_" = nls.localize('placeholder.find', "Find"); const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize('label.previousMatchButton', "Previous Match"); <del> // const NLS_FILTER_BTN_LABEL = nls.localize('label.findFilterButton', "Search in View"); </del> const NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', "Next Match"); <del> const NLS_FIND_IN_CELL_SELECTION_BTN_LABEL = nls.localize('label.findInCellSelectionButton', "Find in Cell Selection"); </del> <ins> const NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize('label.toggleSelectionFind', "Find in Selection"); </ins> const NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', "Close"); const NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize('label.toggleReplaceButton', "Toggle Replace"); const NLS_REPLACE_INPUT_LABEL = nls.localize('label.replace', "Replace");


Question: import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; export class InsertCursorAbove extends EditorAction { constructor() { super({ id: 'editor.action.insertCursorAbove',

VSCode Version: 0.10.11 OS Version: OS X 10.10.5 Steps to Reproduce: a long line of text that wraps in the editor the cursor on the first line and press Cmd-Option-Down (on OS X). This creates a second cursor on the next visual line, which means it is somewhere on the same logical line depending on how the text is wrapped. When creating multiple cursors on adjacent lines, often it is to perform the same edit on multiple (logical) lines that are aligned with each other. The current behavior having the second cursor appear instead at some situation-specific place on the same logical line throws a wrench in this workflow. I can't think of a good situation where it makes sense (though I do realize it is consistent with pressing the down arrow without cmd-option) Definitions: a logical line is a line in the file on disk. A visual line is a line in the editor. A logical line may span multiple visual lines when there is wrapping.


Question: } } for (const a of args) { <del> command += `${quote(a)} `; </del> <ins> command += (a === '<' || a === '>') ? a : quote(a); command += ' '; </ins> } if (env) { command += '"';

<!-- 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.0 OS Version: Windows 10, using as a default shell Steps to Reproduce: When debugging python(I think debuggers of other languages also got effected too), I'm using following to redirect stdin to my custom input file. This method of implementing redirection when debugging using the < character is also introduced in the . According to the document, This approach requires that the "<" syntax is passed through the debugger extension and ends up unmodified in the Integrated Terminal. and it worked like charm before updating to . From , I've noticed that there was a fix related to automatically add escape character() before special symbols such as or (See Terminal on Windows uses cmd /C, this corrupts passed arguments) When I started debugging session, vscode is now really add before . Since character is escaped, I cannot used redirection with the method mentioned in the document anymore. Is this the intended result? If so, how to use redirection 'correctly' after this build? I know a lot of people redirect stdin to and redirect stdout to when debugging, which is actually very convenient. I think that implementing redirection by passing special characters(, , ) as arguments of the debugger is not a very graceful solution, but that method itself should not be eliminated.
Having the same issue with new version in WSL. It seem some characters are prefix with . My is . But in console, the command is , due to prefix , my code is stuck. It was working fine yesterday, So, I think this issue is with new release.


Question: } } for (const a of args) { <del> command += `${quote(a)} `; </del> <ins> command += (a === '<' || a === '>') ? a : quote(a); command += ' '; </ins> } if (env) { command += '"';

VS Code Version: 1.67.0 OS Version: Windows 10, WSL Ubuntu20.04
Judjung from of , I'm sure this issue is related to today's release too.
Yeah this is Thanks for pointing out the docs, I didn't know this was recommended. It's suspicious to me that we would want to put shell-specific syntax in the args here. That isn't what "args" means to me. I wonder whether we could add launch config parameters like "stdinFromFile" and "stdoutToFile" (and add those to the runInTerminal request) so that vscode can come up with the right syntax for the shell. I may want to revert the change until we have a better solution. Thoughts Maybe candidate
I'm not a fan of allowing this. We already try to escape things from those arguments, so people doing this today have only a half-working shell syntax in their arguments. It also only works if you run it in the , and is of course shell-dependent too, which feels weird.
This is super messed up. I 100% require being able to redirect the output. This needs to be fixed. ages: ["",""] was 100% working on windows before this update! My work flow is screwed rn
Args mean arguments as if I was writing it after typing it in console including SHELL commands. I want to redirect output Why in the world it would add ^is crazy to me. This has to be be bug.
Additional sometimes you need to chain aliases that take redirect or pass a redirect back in < These are shell scripts that having the debugger "args" accept <,,| is really important to have. It was an amazing and highly convenient way to debug. I seriously doubt this is a feature that few people would want deprecated. I seriously don't and it's killing me it broke after this update.
Yeah I agree that passing redirection symbols through args is somewhat weird, and I understand the need for escaping shell-specific characters. That's why I've said it's not a graceful solution. However, many people uses the redirection feature through that way now(even if the docs have been mislead the users). It's good improvement to escape that characters in arguments since it is literally "argument", but I think there should be official solution to redirect I/O.


Question: } } for (const a of args) { <del> command += `${quote(a)} `; </del> <ins> command += (a === '<' || a === '>') ? a : quote(a); command += ' '; </ins> } if (env) { command += '"';

As mentioned above, add parameters such as "stdinFromFile" and "stdoutToFile" to might be best solution. BTW, what kind of additional information do I have to add here? I think I mentioned all the details of the sitution but I see the "needs more info" label.
I've spent 3 hours trying to come up with a work around. This is insane. So much of my workflow relied on the ability the redirect stdin and stdout using <,. It's insane that this was deprecated. I don't even get why. It doesn't have to do any crazy checking should just copying what you type in and the shell takes over. This is a serious issue for me. !
If it's about "escaping shell-specific characters" then I could live with this. And if it's about anything else shell then give me something like this:
Sorry for the trouble. Like I said, I didn't realize that people were depending on this behavior, and I agree that it should be supported somehow, since this is a reasonable and useful workflow. To me, "args" means arguments that get passed to the program you are starting. I see a couple solutions Restore the behavior of and require users to shell-escape args in their own config, which is not good, or add which would be shell-escaped Keep the behavior of and add or , or the more specific Any of this will require changes to DAP. I wonder whether anyone is trying to use any shell syntax besides /<, in other words, is there a scenario that adding wouldn't cover?
In my opinion, the second way Keep the behavior of and add or , or the more specific is better workaround since we can prevent use of different way from its real meaning.
just a few comments from vacation... VS Code knows nothing about properties. Some debug extensions introduce in their schema contribution but VS Code cannot provide any direct help with redirecting input/output. VS Code supports/implements the DAP request which some debug extensions use to implement their (private) support. does not allow direct access to shell features (e.g. input/output redirection) because no assumptions can be made about the underlying shell or whether a shell is used at all. So escaping/quoting all shell meta-characters is correct. But we might want to add additional features to the DAP request so that debug adapters can implement / property support themselves.


Question: } } for (const a of args) { <del> command += `${quote(a)} `; </del> <ins> command += (a === '<' || a === '>') ? a : quote(a); command += ' '; </ins> } if (env) { command += '"';

a debug extension can introduce an alternative property that supports shell features, e.g. a property . In order to support this we would have to add support to the DAP request to pass a full command line unchanged to the underlying shell.
is there a scenario that adding stdinFromFile/ stdoutToFile wouldn't cover? Yes. I for one will use aliases that are shell scrips to redirect their input and output to chain together programs.
Yes, this is basically my thinking. But I think I should revert the change as a candidate until we figure out a better solution. could you give me an example so I understand how that wouldn't be covered by this proposal?
"stdinFromFile/stdoutToFile" makes the most sense to me. I would not be in favor of a option in the request since, similar to the initial problem, the DA has no knowledge of the underlying shell.
I wonder whether we could make everyone happy in the meantime by leaving the current fix but special-casing and and not escaping these? You could have the and filename in a single arg but I don't see anyone doing that. And it would make the behavior almost the same as the intended escaping behavior.
If would work with "" instead of "", "" I could live with that. Or what ever you mean by special-casing. I just want it to work again or have some means to do to it again.
I mean the opposite (the in would not be escaped, and in would be escaped)
that seems like an acceptable interim fix to me. As a C++ debug extension author (vGDB), this has also broken my extension on the most recent VSCode build and I've had to suggest users defer on upgrading for now to not break existing workflows.
Thanks. I am going with this solution for the .2 build that will go out next week. Not a perfect fix - as a single argument would have previously redirected output too - but people are using or in all the examples I have seen so far. It will also be in Insiders tomorrow. I noticed another issue with the escaping, , which will also get fixed in Insiders
thanks for the quick fix!


Question: const wrapper = this.wrapper = dom.$('.testing-filter-wrapper'); container.appendChild(wrapper); <ins> const history = this.history.get([]); if (history.length) { this.state.setText(history[history.length - 1]); } </ins> const input = this.input = this._register(this.instantiationService.createInstance(ContextScopedSuggestEnabledInputWithHistory, { id: 'testing.explorer.filter', ariaLabel: localize('testExplorerFilterLabel', "Filter text for tests in the explorer"),

Issue Type: <bFeature Request</b The Test Explorer filter should be preserved if a window reload occurs, rather than resetting to default. This behavior could be gated by a setting. ! VS Code version: Code - Insiders 1.65.0-insider (, 2022-02-16T05:16:18.653Z) OS version: WindowsNT x64 10.0. Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (32)</summaryExtensionVersion ------ vscode-color0.4.5 vscode-opennewinstance0.0.12 gitlens11.7.0 filter-lines1.0.0 EditorConfig0.16.4 prettier-vscode9.2.0 copilot-nightly1.7.5030 remotehub0.24.0 gc-excelviewer4.0.50 todo-tree0.0.215 vscode-drawio1.6.4 change-case1.0.2 vscode-peacock4.0.0 git-graph1.30.0 vscode-azurefunctions1.6.0 vscode-azureresourcegroups0.4.0 vscode-docker1.19.0 remote-containers0.222.0 azure-account0.10.0 powershell-preview2022.2.1 indent-rainbow8.2.2 docthis0.8.2 pester-test2021.10.2 vscode-commons0.0.6 vscode-yaml1.4.0 vscode-inline-values-powershell0.0.5 errorlens3.4.1 vscode-icons11.10.0 codetour0.0.58 gistfs0.3.0 gitmoji-vscode1.0.9 better-align1.1.6 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
That makes sense.
I'm still able to reproduce this with the latest mainline build. May I pick this up since it's still open?
Sure!


Question: * provides access to the raw data stream from the process running within the terminal, * including VT sequences. */ <del> onData: Event<string>; </del> <ins> onDidWriteData: Event<string>; </ins> } /**

re see
same for
Same is true for Wanted to reuse the issue but didn't read all comments. Ignore mine. already mentioned it.
I'll change them to ,


Question: await this.model.pull(true); } <ins> @command('git.pullFrom') async pullFrom(): Promise<void> { const remotes = this.model.remotes; if (remotes.length === 0) { window.showWarningMessage(localize('no remotes to pull', "Your repository has no remotes configured to pull from.")); return; } const picks = remotes.map(r => ({ label: r.name, description: r.url })); const placeHolder = localize('pick remote pull', "Pick a remote to pull from"); const pickRemote = await window.showQuickPick(picks, { placeHolder }); const pickBranch = await window.showInputBox({ prompt: localize('pick pull branch', "Type a branch to pull"), ignoreFocusOut: true }); if (!pickRemote || !pickBranch) { return; } this.model.pull(false, pickRemote.label, pickBranch); } </ins> @command('git.push') async push(): Promise<void> { const remotes = this.model.remotes;

We have the ability to select which branch to push to in the source control, could we please have a pull from option? To target specific branches. Unless it exists already? I have only recently started using VS Code and i love it!
This is an easy contribution, care to submit a PR? PS: You currently have the ability to select which remote to push to, not which branch.
I'll take on this. Is it correct that branch names are not stored anywhere? I've checked in and cannot find anywhere they could be stored. If there is nothing, I'll just take a user input using showInputBox.
I created a pull request for this: Please take a look when you have the chance.
merge conflict is fixed.
Merging with


Question: }).then(res => !res.confirmed); } <ins> protected _showNotEnoughSpaceToast(): void { this._notificationService.warn(nls.localize('terminal.minWidth', "Not enough space to split terminal.")); } </ins> public setContainers(panelContainer: HTMLElement, terminalContainer: HTMLElement): void { this._configHelper.panelContainer = panelContainer; this._terminalContainer = terminalContainer;

With latest release (1.21) you can split terminal infinitely. This breaks badly the terminal area. Probably the IDE should limit this to a defined maximum or something?
I considered adding a max value but you would always be able to break it then by sizing down. As a mitigation we could disallow creating terminals if the desired room isn't there but the real fix is proper overflow behavior.
Thanks , I would agree that proper overflow behaviour is the way to go. Thanks!
I think the easiest way to improve this is to only allow terminals to be created if there's a reasonable amount of room. This can exist with our current lack of overflow behavior as it's an improvement on the current and will prevent 100 terminals from being created..
Some terminal can be resized to a small size if they are not important. In some case, showing multiple terminals is just to notify the user whether they are running. Currently the minimum size of terminal is too large.
I suggest the minimum size of a terminal should be an option in Settings.


Question: } } <del> async pull(rebase?: boolean): Promise<void> { </del> <ins> async pull(rebase?: boolean, remote?: string, branch?: string): Promise<void> { </ins> const args = ['pull']; if (rebase) { args.push('-r'); } <ins> if (remote && branch) { args.push(remote, branch); } </ins> try { await this.run(args);

In VS Code we able to push git repos to different places with "git push to" and choosing the remote server to push. I'll be nice if we can be able to choose from the repo to pull files, and manage the default remote, today the first remote repo is the default isn't possible to change that via VS Code
Thanks for all your contributions. You all created a PR to solve the same issue; all in a surprisingly similar way. I wanted to keep the record of all your work so I did an octopus merge with git, thus keeping your names in history. Thanks once again!


Question: /** * Sanitizes the given `value` and reset the given `node` with it. */ <del> export function safeInnerHtml(node: HTMLElement, value: string): void { </del> <ins> export function safeInnerHtml(node: HTMLElement, value: string, extraDomPurifyConfig?: dompurify.Config): void { </ins> const hook = hookDomPurifyHrefAndSrcSanitizer(defaultSafeProtocols); try { <del> const html = dompurify.sanitize(value, defaultDomPurifyConfig); </del> <ins> const html = dompurify.sanitize(value, { ...defaultDomPurifyConfig, ...extraDomPurifyConfig }); </ins> node.innerHTML = html as unknown as string; } finally { hook.dispose();

<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --<!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: Version: 1.93.0-insider (user setup) Commit: Date: 2024-09-04T13:13:15.344Z Electron: 30.4.0 ElectronBuildId: Chromium: 124.0.6367.243 20.15.1 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0. OS Version: Windows 11 Insiders Steps to Reproduce: in the first paragraph doesn't appear to be a link, which I was surprised about: ! I hover over it, I see it's supposed to be a link, but clicking on it does nothing: ! The other docs links at the bottom of the playground appear correctly as links and do open when I click on them: !
This seems related to the bookmark issue we had in the release notes. The other bookmark links in the interactive playground don't work either.
Fixed the toc links. Need another fix for the documentation link too (which use command uris)
The Editor Playground is not showing at all anymore in the latest insiders. When selecting the Editor Playground menu item, a black editor comes up.
hm working from oss builds. Insiders, it seems like the error is:
Actually unrelated. Seems like a duplicate of and fixed by


Question: if (activeEditor) { groupActiveEditorCanSplitInGroupContext.set(activeEditor.hasCapability(EditorInputCapabilities.CanSplitInGroup)); <del> sideBySideEditorContext.set(activeEditor.typeId === SideBySideEditorInput.ID); </del> <ins> groupActiveEditorIsSideBySideEditorContext.set(activeEditor.typeId === SideBySideEditorInput.ID); </ins> groupActiveEditorDirtyContext.set(activeEditor.isDirty() && !activeEditor.isSaving()); activeEditorListener.value = activeEditor.onDidChangeDirty(() => {

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


Question: quickPick.show(); quickPick.onDidAccept(() => { this._accessibleView.showSymbol(provider, quickPick.selectedItems[0]); <ins> quickPick.hide(); </ins> }); quickPick.onDidHide(() => { if (quickPick.selectedItems.length === 0) {

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


Question: const characterLinesVisibleRanges = this._visibleRangeProvider.linesVisibleRangesForRange(characterViewRange, true) ?? []; const characterVerticalOffset = this._context.viewLayout.getVerticalOffsetForLineNumber(characterViewRange.startLineNumber); const editorScrollTop = this._context.viewLayout.getCurrentScrollTop(); <ins> const editorScrollLeft = this._context.viewLayout.getCurrentScrollLeft(); </ins> const top = parentBounds.top + characterVerticalOffset - editorScrollTop; let left = 0;

Version: 1.94.0-insider Commit: Date: 2024-09-23T05:12:01.964Z Electron: 30.5.0 ElectronBuildId: Chromium: 124.0.6367.243 20.16.0 V8: 12.4.254.20-electron.0 OS: Darwin arm64 22.6.0 Steps to Reproduce: a very long line. Google IME for Japanese. at the last of the long line. position of the IME widget is not optimal. ! With , it is worse. !
Hi yes thanks a lot for opening this valuable issue. This is happening because we use the model ranges instead of the view ranges in the control bounds, selection bounds and character bounds positioning. The following PR fixes this:
I try the OSS version from the repository. The issue with is fixed. However, I still see the issue with Version: 1.94.0 Commit: Date: Unknown Electron: 30.5.1 ElectronBuildId: undefined Chromium: 124.0.6367.243 20.16.0 V8: 12.4.254.20-electron.0 OS: Darwin arm64 22.6.0 a very long line. Google IME for Japanese. at the last of the long line. position of the IME widget is not optimal. !
Oh I see thanks for letting me know that is curious. I will reopen the issue and have a look.
After investigating the issue, I believe this happens because I didn't remove the editor scroll left position from the bounds set for the selection and character bounds. The following PR should fix this.


Question: this.instantiationService.createInstance(InstallingLabelAction), this.instantiationService.createInstance(ActionWithDropDownAction, 'extensions.uninstall', UninstallAction.UninstallLabel, [ [ <ins> this.instantiationService.createInstance(MigrateDeprecatedExtension, false), </ins> this.instantiationService.createInstance(UninstallAction), this.instantiationService.createInstance(InstallAnotherVersionAction), ]

Code, search for "bracket pair colorizer" how it is nicely rendered as deprecated on install -notice dialog The dialog should offer a third button to configure built-in settings instead. Same if an extension had an alternative extension. Example: ! fyi
I assume you want the extra button to replicate this link in the hover tip, right? ! As an aside, any doc yet about how an extension gets tagged as deprecated?
yes, a button that will replicate that behaviour correct. No docs yet written. I plan to add them soon. The process is to write an email to us or to ping us on GitHub. In the future we will have a more straightforward approach when MP adds UI.
I feel, the third option would be a general options like More Information... clicking on this shall open the extension editor. This will be consistent and useful so that user will get enough info before taking an action
"More Information..." might work, but in order to have one less hop we could render: "Install EXTENSION_NAME Instead" "Enable Native Settings Instead" That would just do the action right straight away. I am not sure if those button names are too long. So just a suggestion. Whatever you prefer...
Yah I see your point, but going to extension editor gives user more information and an opportunity to look at the alternative extension before installing. And also I do not like that this button changes with extension. More Information... would be consistent.
That's fair. We can start with your proposal and see how it goes. My only concern with "More Information" is that the user might think it is more information about the deprecation. While we actually want to guide the user to a solution. So it is something like "More about the alternative". I am not sure if there is a good button label to represent this.
<img width="308" alt="image (1)" src="https://user-"
Changed the second button as follows ! !
Awesome!!


Question: "tas-client-umd": "0.1.4", "vscode-oniguruma": "1.6.1", "vscode-textmate": "7.0.1", <del> "xterm": "4.19.0-beta.24", "xterm-addon-search": "0.9.0-beta.21", </del> <ins> "xterm": "4.19.0-beta.25", "xterm-addon-search": "0.9.0-beta.22", </ins> "xterm-addon-unicode11": "0.4.0-beta.3", <del> "xterm-addon-webgl": "0.12.0-beta.28" </del> <ins> "xterm-addon-webgl": "0.12.0-beta.29" </ins> } }

<!-- 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 VS Code Version: 1.67.0-insiders OS Version: macOS 12.3.1 Steps to Reproduce: the terminal scrollback to 30'000 for With version 1.65.0 this was not a problem, but there was no highlighting. It would be enough if I can disable the highlighting or disable the highlighting automatically if the history is longer than x lines. https://user-
That doesn't look or feel slow to me - can you elaborate on what the issue you're dealing with is?
Is it Upstream or VSCode Core.
Happens for me too, when you search then type abs quickly and it takes ~5-10 seconds for the letters to appear, same goes with erasing letters.
Search is fast now but matches info is not being shown -