Question:
<!-- 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?: N/A <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.69.0-insider OS Version: Windows 10 Steps to Reproduce: and install from VSIX the test-provider-sample from - this just sets instead of adding test cases. Testing panel and open outcome: shows "expanded arrow" but error message doesn't appear. Error appears in Developer Tools ! ! bootstrap- [uncaught exception]: TypeError: Cannot read properties of undefined (reading 'expand') onUnexpectedError @ bootstrap- (anonymous) @ bootstrap- emit @ node:events:390 window.onerror @ node:electron/js2c/rendererinit:73 platform1.globals.onerror @ bootstrap- TypeError: Cannot read properties of undefined (reading 'expand') at Object.getId (vscode-file://vscode-) at vscode-file://vscode- at (<anonymous) at IndexTreeModel.spliceSimple (vscode-file://vscode-) at IndexTreeModel.spliceSmart (vscode-file://vscode-) at (vscode-file://vscode-) at ObjectTreeModel.setChildren (vscode-file://vscode-) at ObjectTreeModel.setChildren (vscode-file://vscode-) at WorkbenchObjectTree.setChildren (vscode-file://vscode-) at NodeChangeList.applyTo (vscode-file://vscode-) at HierarchicalByLocationProjection.applyTo (vscode-file://vscode-) at TestingExplorerViewModel.applyProjectionChanges (vscode-file://vscode-) at (vscode-file://vscode-) at RunOnceScheduler.doRun (vscode-file://vscode-) at RunOnceScheduler.onTimeout (vscode-file://vscode-) onUnexpectedError @ bootstrap- (anonymous) @ bootstrap- emit @ node:events:390 window.onerror @ node:electron/js2c/rendererinit:73 platform1.globals.onerror @ Uncaught TypeError: Cannot read properties of undefined (reading 'expand') at Object.getId () at at (<anonymous) at IndexTreeModel.spliceSimple () at IndexTreeModel.spliceSmart () at () at ObjectTreeModel.setChildren () at ObjectTreeModel.setChildren () at WorkbenchObjectTree.setChildren () at NodeChangeList.applyTo () at HierarchicalByLocationProjection.applyTo () at TestingExplorerViewModel.applyProjectionChanges () at () at RunOnceScheduler.doRun () at RunOnceScheduler.onTimeout ()
I submitted a PR
/assign

import { IIdentityProvider } from 'vs/base/browser/ui/list/list'; import { ObjectTree } from 'vs/base/browser/ui/tree/objectTree'; import { ITreeElement } from 'vs/base/browser/ui/tree/tree'; <del> import { IActionableTestTreeElement, TestExplorerTreeElement, TestItemTreeElement } from 'vs/workbench/contrib/testing/browser/explorerProjections/index'; </del> <ins> import { IActionableTestTreeElement, TestExplorerTreeElement, TestItemTreeElement, TestTreeErrorMessage } from 'vs/workbench/contrib/testing/browser/explorerProjections/index'; </ins> <del> export const testIdentityProvider: IIdentityProvider<TestItemTreeElement> = { </del> <ins> export const testIdentityProvider: IIdentityProvider<TestExplorerTreeElement> = { </ins> getId(element) { <del> return element.treeId + '0' + element.test.expand; </del> <ins> return element.treeId + '0' + (element instanceof TestTreeErrorMessage ? 'error' : element.test.expand); </ins> } };


Question:
<img width="368" alt="CleanShot 2022-07-18 at 08 28 16 src="https://user-""Configure" and "Manage" are really similar to each other and I had a hard time knowing which one opened what, which caused me to open the wrong one. "Configure" opens the settings UI with a query, and "Manage" opens a custom editor. My proposal would be to change "Configure Workspace Trust" to "Workspace Trust Settings" to make it explicit.
I'd actually like to tweak your proposal to "Manage Trusted Workspaces" and "Configure Workspace Trust Settings"

* Actions */ <del> // Configure Workspace Trust </del> <ins> // Configure Workspace Trust Settings </ins> const CONFIGURE_TRUST_COMMAND_ID = 'workbench.trust.configure'; const WORKSPACES_CATEGORY = { value: localize('workspacesCategory', "Workspaces"), original: 'Workspaces' };


Question:
<img width="368" alt="CleanShot 2022-07-18 at 08 28 16 src="https://user-""Configure" and "Manage" are really similar to each other and I had a hard time knowing which one opened what, which caused me to open the wrong one. "Configure" opens the settings UI with a query, and "Manage" opens a custom editor. My proposal would be to change "Configure Workspace Trust" to "Workspace Trust Settings" to make it explicit.
I'd actually like to tweak your proposal to "Manage Trusted Workspaces" and "Configure Workspace Trust Settings"

constructor() { super({ id: CONFIGURE_TRUST_COMMAND_ID, <del> title: { original: 'Configure Workspace Trust', value: localize('configureWorkspaceTrust', "Configure Workspace Trust") }, </del> <ins> title: { original: 'Configure Workspace Trust Settings', value: localize('configureWorkspaceTrustSettings', "Configure Workspace Trust Settings") }, </ins> precondition: ContextKeyExpr.and(WorkspaceTrustContext.IsEnabled, ContextKeyExpr.equals(`config.${WORKSPACE_TRUST_ENABLED}`, true)), category: WORKSPACES_CATEGORY, f1: true


Question:
Repro: Using Open a Remote - WSL folder !
This would probably not be limited to the title, what about the hover over the tab?
The separators seem to be flipped: !
I wonder if could have regressed this, is this a recent regression?
I cannot reproduce, so this is some setting you have or some configuration most likely.
It might be remnants of the formatted caching bug?
<!-- 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!

this.os = OS; this.userHome = pathService.defaultUriScheme === Schemas.file ? this.pathService.userHome({ preferLocal: true }) : undefined; <del> const memento = this.storedFormattersMemento = new Memento('cachedResourceLabelFormatters', storageService); </del> <ins> const memento = this.storedFormattersMemento = new Memento('cachedResourceLabelFormatters2', storageService); </ins> this.storedFormatters = memento.getMemento(StorageScope.PROFILE, StorageTarget.MACHINE); <del> this.formatters = this.storedFormatters?.formatters || []; </del> <ins> this.formatters = this.storedFormatters?.formatters?.slice() || []; </ins> // Remote environment is potentially long running this.resolveRemoteEnvironment();


Question:
Repro: Using Open a Remote - WSL folder !
This would probably not be limited to the title, what about the hover over the tab?
The separators seem to be flipped: !
I wonder if could have regressed this, is this a recent regression?
I cannot reproduce, so this is some setting you have or some configuration most likely.
It might be remnants of the formatted caching bug?
<!-- 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!

test('label caching', () => { <del> const m = new Memento('cachedResourceLabelFormatters', storageService).getMemento(StorageScope.PROFILE, StorageTarget.MACHINE); </del> <ins> const m = new Memento('cachedResourceLabelFormatters2', storageService).getMemento(StorageScope.PROFILE, StorageTarget.MACHINE); </ins> const makeFormatter = (scheme: string): ResourceLabelFormatter => ({ formatting: { label: `${path} (${scheme})`, separator: '/' }, scheme }); assert.deepStrictEqual(m, {});


Question:
<!-- 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 Steps to Reproduce: The documentation has a spelling mistake LINK: -Value of an environment variable on the host machine (in this case, called VARIABLENAME). Unset variables are left blank. To for example, this would set a variable to your local home folder on Linux / macOS or the user folder on Windows:
/ , can you please point me to the GitHub page that corresponds to this page.
Thanks for pointing this out. It looks like we fixed the typo () but have not yet deployed the latest changes.
You are welcome, ! I was trying to fix the issue for Hacktoberfest 2022, but I was unable to figure out in which repo this file was located. Just out of curiosity I would like to know as to where the source file for the page with the typo reside in GitHub?
Thanks for looping me in! Opened a PR in is the repo for

}, { "name": "border-image-width", <del> "desc": "The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the the top, right, bottom, and left sides of the area, respectively.", </del> <ins> "desc": "The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.", </ins> "browsers": "FF13,IE11", "restriction": "length, percentage, number", "values": []


Question:
<!-- 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 Steps to Reproduce: The documentation has a spelling mistake LINK: -Value of an environment variable on the host machine (in this case, called VARIABLENAME). Unset variables are left blank. To for example, this would set a variable to your local home folder on Linux / macOS or the user folder on Windows:
/ , can you please point me to the GitHub page that corresponds to this page.
Thanks for pointing this out. It looks like we fixed the typo () but have not yet deployed the latest changes.
You are welcome, ! I was trying to fix the issue for Hacktoberfest 2022, but I was unable to figure out in which repo this file was located. Just out of curiosity I would like to know as to where the source file for the page with the typo reside in GitHub?
Thanks for looping me in! Opened a PR in is the repo for

}, { "name": "counter-increment", <del> "desc": "Counters are used with the 'counter()' and 'counters()' functions of the the 'content' property.", </del> <ins> "desc": "Counters are used with the 'counter()' and 'counters()' functions of the 'content' property.", </ins> "browsers": "C,FF1.5,IE8,O10.5,S3", "restriction": "identifier, integer", "values": []


Question:
<!-- 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 Steps to Reproduce: The documentation has a spelling mistake LINK: -Value of an environment variable on the host machine (in this case, called VARIABLENAME). Unset variables are left blank. To for example, this would set a variable to your local home folder on Linux / macOS or the user folder on Windows:
/ , can you please point me to the GitHub page that corresponds to this page.
Thanks for pointing this out. It looks like we fixed the typo () but have not yet deployed the latest changes.
You are welcome, ! I was trying to fix the issue for Hacktoberfest 2022, but I was unable to figure out in which repo this file was located. Just out of curiosity I would like to know as to where the source file for the page with the typo reside in GitHub?
Thanks for looping me in! Opened a PR in is the repo for

"values": [ { "name": "center", <del> "desc": "Places the center of the Grid Item's margin box at the center of the the Grid Item's column." </del> <ins> "desc": "Places the center of the Grid Item's margin box at the center of the Grid Item's column." </ins> }, { "name": "end",


Question:
<!-- 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 Steps to Reproduce: The documentation has a spelling mistake LINK: -Value of an environment variable on the host machine (in this case, called VARIABLENAME). Unset variables are left blank. To for example, this would set a variable to your local home folder on Linux / macOS or the user folder on Windows:
/ , can you please point me to the GitHub page that corresponds to this page.
Thanks for pointing this out. It looks like we fixed the typo () but have not yet deployed the latest changes.
You are welcome, ! I was trying to fix the issue for Hacktoberfest 2022, but I was unable to figure out in which repo this file was located. Just out of curiosity I would like to know as to where the source file for the page with the typo reside in GitHub?
Thanks for looping me in! Opened a PR in is the repo for

"values": [ { "name": "center", <del> "desc": "Places the center of the Grid Item's margin box at the center of the the Grid Item's row." </del> <ins> "desc": "Places the center of the Grid Item's margin box at the center of the Grid Item's row." </ins> }, { "name": "end",


Question: The focus on a search result shouldn't change when removing an element that isn't affected by the removal. ]() Should be like this: ! Likely due to changes in

async performReplace(element: FolderMatch | FileMatch | Match): Promise<any> { // since multiple elements can be selected, we need to check the type of the FolderMatch/FileMatch/Match before we perform the replace. <del> const elementsToReplace = getElementsToOperateOnInfo(this.viewer, element, this.configurationService.getValue<ISearchConfigurationProperties>('search')); </del> <ins> const opInfo = getElementsToOperateOnInfo(this.viewer, element, this.configurationService.getValue<ISearchConfigurationProperties>('search')); const elementsToReplace = opInfo.elements; </ins> await Promise.all(elementsToReplace.map(async (elem) => { const parent = elem.parent();


Question: The focus on a search result shouldn't change when removing an element that isn't affected by the removal. ]() Should be like this: ! Likely due to changes in

} override run(): Promise<any> { <del> const elementsToRemove = getElementsToOperateOnInfo(this.viewer, this.element, this.configurationService.getValue<ISearchConfigurationProperties>('search')); </del> <ins> const opInfo = getElementsToOperateOnInfo(this.viewer, this.element, this.configurationService.getValue<ISearchConfigurationProperties>('search')); const elementsToRemove = opInfo.elements; </ins> const currentBottomFocusElement = elementsToRemove[elementsToRemove.length - 1]; <del> const nextFocusElement = !currentBottomFocusElement || currentBottomFocusElement instanceof SearchResult || arrayContainsElementOrParent(currentBottomFocusElement, elementsToRemove) ? </del> <ins> const nextFocusElement = opInfo.mustReselect && (!currentBottomFocusElement || currentBottomFocusElement instanceof SearchResult || arrayContainsElementOrParent(currentBottomFocusElement, elementsToRemove)) ? </ins> this.getElementToFocusAfterRemoved(this.viewer, <any>currentBottomFocusElement) : null;


Question: The focus on a search result shouldn't change when removing an element that isn't affected by the removal. ]() Should be like this: ! Likely due to changes in

}); }; <del> function getElementsToOperateOnInfo(viewer: WorkbenchObjectTree<RenderableMatch, void>, currElement: RenderableMatch, sortConfig: ISearchConfigurationProperties): RenderableMatch[] { </del> <ins> function getElementsToOperateOnInfo(viewer: WorkbenchObjectTree<RenderableMatch, void>, currElement: RenderableMatch, sortConfig: ISearchConfigurationProperties): { elements: RenderableMatch[]; mustReselect: boolean } { </ins> let elements: RenderableMatch[] = viewer.getSelection().filter((x): x is RenderableMatch => x !== null).sort((a, b) => searchComparer(a, b, sortConfig.sortOrder)); <ins> const mustReselect = elements.includes(currElement); // this indicates whether we need to re-focus/re-select on a remove. </ins> // if selection doesn't include multiple elements, just return current focus element. if (!(elements.length > 1 && elements.includes(currElement))) { elements = [currElement]; } <del> return elements; </del> <ins> return { elements, mustReselect }; </ins> }


const pendingCommentText = this._pendingCommentCache[e.owner] && this._pendingCommentCache[e.owner][thread.threadId!]; this.displayCommentThread(e.owner, thread, pendingCommentText); this._commentInfos.filter(info => info.owner === e.owner)[0].threads.push(thread); <ins> this.tryUpdateReservedSpace(); </ins> }); this._commentThreadRangeDecorator.update(this.editor, commentInfo); }));


return; } <del> private setComments(commentInfos: ICommentInfo[]): void { if (!this.editor || !this.commentService.isCommentingEnabled) { return; } this._commentInfos = commentInfos; </del> <ins> private tryUpdateReservedSpace() { </ins> let lineDecorationsWidth: number = this.editor.getLayoutInfo().decorationsWidth; <ins> const hasCommentsOrRanges = this._commentInfos.some(info => { const hasRanges = Boolean(info.commentingRanges && (Array.isArray(info.commentingRanges) ? info.commentingRanges : info.commentingRanges.ranges).length); return hasRanges || (info.threads.length > 0); }); </ins> <del> if (this._commentInfos.some(info => Boolean(info.commentingRanges && (Array.isArray(info.commentingRanges) ? info.commentingRanges : info.commentingRanges.ranges).length))) { </del> <ins> if (hasCommentsOrRanges) { </ins> this._workspaceHasCommenting.set(true); if (!this._commentingRangeSpaceReserved) { this._commentingRangeSpaceReserved = true;


}); } } <ins> } private setComments(commentInfos: ICommentInfo[]): void { if (!this.editor || !this.commentService.isCommentingEnabled) { return; } this._commentInfos = commentInfos; this.tryUpdateReservedSpace(); </ins> // create viewzones this.removeCommentWidgetsAndStoreCache();


/** * Optional commenting range provider. Provide a list {@link Range ranges} which support commenting to any given resource uri. * <del> * If not provided, users can leave comments in any document opened in the editor. </del> <ins> * If not provided, users cannot leave any comments. </ins> */ commentingRangeProvider?: CommentingRangeProvider;


Question:
Remove Manual Folding Range doesn't work Originally posted by in select a range in the editor invoke . Selection turns into a folding range put the cursor at the beginning of the collapsed line invoke . Should remove the manual folding range
It works when the cursor is at the second column or to the right of that, but not when it's right at the beginning of the line, which is exactly where it is placed after running the create manual folding range command.

public removeManualRanges(ranges: ILineRange[]) { const newFoldingRanges: FoldRange[] = new Array(); <del> const containedBy = (foldRange: FoldRange) => { </del> <ins> const intersects = (foldRange: FoldRange) => { </ins> for (const range of ranges) { <del> if (range.startLineNumber <= foldRange.startLineNumber && range.endLineNumber >= foldRange.endLineNumber) { </del> <ins> if (!(range.startLineNumber > foldRange.endLineNumber || foldRange.startLineNumber > range.endLineNumber)) { </ins> return true; } }


Question:
Remove Manual Folding Range doesn't work Originally posted by in select a range in the editor invoke . Selection turns into a folding range put the cursor at the beginning of the collapsed line invoke . Should remove the manual folding range
It works when the cursor is at the second column or to the right of that, but not when it's right at the beginning of the line, which is exactly where it is placed after running the create manual folding range command.

}; for (let i = 0; i < this._regions.length; i++) { const foldRange = this._regions.toFoldRange(i); <del> if (!foldRange.isUserDefined && !foldRange.isRecovered || !containedBy(foldRange)) { </del> <ins> if (!foldRange.isUserDefined && !foldRange.isRecovered || !intersects(foldRange)) { </ins> newFoldingRanges.push(foldRange); } }


Question:
Remove Manual Folding Range doesn't work Originally posted by in select a range in the editor invoke . Selection turns into a folding range put the cursor at the beginning of the collapsed line invoke . Should remove the manual folding range
It works when the cursor is at the second column or to the right of that, but not when it's right at the beginning of the line, which is exactly where it is placed after running the create manual folding range command.

if (selections) { const ranges: ILineRange[] = []; for (const selection of selections) { <del> let endLineNumber = selection.endLineNumber; if (selection.endColumn === 1) { --endLineNumber; } const startLineNumber = selection.startLineNumber; ranges.push(endLineNumber >= selection.startLineNumber ? { startLineNumber, endLineNumber } : { endLineNumber, startLineNumber }); </del> <ins> const { startLineNumber, endLineNumber } = selection; ranges.push(endLineNumber >= startLineNumber ? { startLineNumber, endLineNumber } : { endLineNumber, startLineNumber }); </ins> } foldingModel.removeManualRanges(ranges); foldingController.triggerFoldingModelChanged();


Question:
Testing open the emoji picker (ctrl+cmd+space) drag an emoji into the code editor observe that nothing happens from adding a breakpoint, I can observe that  is never invoked I'm not sure what's wrong, the same steps work fine when loading the editor by itself in a browser using . https://user-
Seems to require holding down shift at the moment even though there is no overlay saying this
I cannot drop an emoji into the monaco playground and also not into the TS playground. It also does not work in However it works on stable and stable VS Code when holding Shift as Matt suggested. I also do not see the drop feedback in insiders, so this looks like a regression to me.
Sorry, I think I got confused because in my insiders I have configured , so I do not see the drop indicator. I see no difference in behaviour between VSCode stable and insiders, so it is not a regression as far as I can tell. I can confirm that pressing makes this work
On our playground it does not work either but I am not even seeing the drop indicator: !
The editor at is around 6 months old, so there it doesn't work at all, I acknowledge that. In my original screen recording I was running the editor from sources. I am quite certain this used to work at some time (when Matt first did the PR at ). I'll try bisecting to see if that points to anything. The initial bisect points to
points to
If I comment out the following lines, then dropping text from TextEdit works, otherwise it doesn't: https://user- https://user-
The safest fix seems to be reverting the fix for by commenting out the block of code. Will push that for July and then investigate a proper solution that also in August
Can't seem to get this to work with the Windows emoji picker and the drag/drop extension sample. Does this only work on mac?
I only tested on Mac and don't know if this is supported on windows. Can you drag emoji into other apps, such as notepad?
Doesn't look like it. Will close and leave for someone on mac to verify then.

private registerListeners(): void { this._register(addDisposableListener(this.container, EventType.DRAG_ENTER, e => this.onDragEnter(e))); this._register(addDisposableListener(this.container, EventType.DRAG_LEAVE, () => this.onDragLeave())); <del> this._register(addDisposableListener(this.container, EventType.DRAG_OVER, e => { if (!this.overlay) { this.onDragEnter(e); } })); </del> [this.container, window].forEach(node => this._register(addDisposableListener(node as HTMLElement, EventType.DRAG_END, () => this.onDragEnd()))); }


Question:
Testing In Remote-WSL + bash + subshell, if I run and then use the command decoration to rerun the command, it instead runs . !
This is also the reason may be replaced by ; we're sending the alias resolved command line instead of the raw command line as input.
We should also verify this doesn't happen with aliases in zsh
fyi verifier, reproduces in normal in a non-subshell
to reproduce: in a terminal to see the ones you've defined the part to the left of the command decoration menu, the command's alias (part to the right of ) is the input
it does not
the alias value is also displayed in the quickpick atm
I thought of an even better idea to what we talked about, we could use the old history method to supplement our current better method; if there are no problematic histcontrol settings and the latest history command changed between precious and now, assume it was an alias and use that?
could you verify this one when you get a chance?
still seems to repro in Remote-WSL ! Version: 1.71.0-insider (user setup) Commit: Date: 2022-08-23T10:56:12.685Z Electron: 19.0.12 Chromium: 102.0.5005.167 16.14.2 V8: 10.2.154.15-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes
Does show anything? My Ubuntu wsl shows in which case we cannot use that history method which is a known edge case that I don't think we can handle currently and is not worth tracking imo.
Yeah the output is . Is there a value I can change that to which would allow me to verify the fix?
it can be set to the empty string or - set this in your which should run before shell integration
<img width="278" alt="image" src="https://user-"

builtin printf "x1b]633;P;IsWindows=Truex07" fi <ins> # Allow verifying $BASH_COMMAND doesn't have aliases resolved via history when the right HISTCONTROL # configuration is used if [[ "$HISTCONTROL" =~ .*(erasedups|ignoreboth|ignoredups).* ]]; then __vsc_history_verify=0 else __vsc_history_verify=1 fi </ins> __vsc_initialized=0 __vsc_original_PS1="$PS1" __vsc_original_PS2="$PS2"


Question:
Testing In Remote-WSL + bash + subshell, if I run and then use the command decoration to rerun the command, it instead runs . !
This is also the reason may be replaced by ; we're sending the alias resolved command line instead of the raw command line as input.
We should also verify this doesn't happen with aliases in zsh
fyi verifier, reproduces in normal in a non-subshell
to reproduce: in a terminal to see the ones you've defined the part to the left of the command decoration menu, the command's alias (part to the right of ) is the input
it does not
the alias value is also displayed in the quickpick atm
I thought of an even better idea to what we talked about, we could use the old history method to supplement our current better method; if there are no problematic histcontrol settings and the latest history command changed between precious and now, assume it was an alias and use that?
could you verify this one when you get a chance?
still seems to repro in Remote-WSL ! Version: 1.71.0-insider (user setup) Commit: Date: 2022-08-23T10:56:12.685Z Electron: 19.0.12 Chromium: 102.0.5005.167 16.14.2 V8: 10.2.154.15-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes
Does show anything? My Ubuntu wsl shows in which case we cannot use that history method which is a known edge case that I don't think we can handle currently and is not worth tracking imo.
Yeah the output is . Is there a value I can change that to which would allow me to verify the fix?
it can be set to the empty string or - set this in your which should run before shell integration
<img width="278" alt="image" src="https://user-"

__vsc_preexec() { __vsc_initialized=1 if [[ ! "$BASH_COMMAND" =~ ^__vsc_prompt* ]]; then <del> __vsc_current_command=$BASH_COMMAND </del> <ins> # Use history if it's available to verify the command as BASH_COMMAND comes in with aliases # resolved if [ "$__vsc_history_verify" = "1" ]; then __vsc_current_command="$(builtin history 1 | sed -r 's/ *[0-9]+ +//')" else __vsc_current_command=$BASH_COMMAND fi </ins> else __vsc_current_command="" fi


Question: Type: <bBug</bTesting down in a TypeScript function ! Note that, In the screenshot, is actually at line 1344, the gutter doesn't have enough space for 4 numbers. Also, the visual separation between sticky lines and normal lines looks too subtle for me. VS Code version: Code - Insiders 1.70.0-insider (, 2022-07-29T10:47:14.408Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.10.102.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (18)</summaryExtensionVersion ------ Bookmarks13.3.1 remotehub0.39. remote-containers0.243.0 remote-ssh0.85. remote-ssh-edit0.80.0 remote-wsl0.66.3 remote-repositories0.16.0 material-icon-theme4.19.0 material-theme3.15.2 vscode-eslint2.2.6 gitlens12.1.2 prettier-vscode9.5.0 copilot-nightly1.36.6347 js-debug-nightly2022.7.2717 abracadabra6.14.4 vscode-jest4.6.0 prisma4.1.0 code-spell-checker2.3.4 </details<!-- generated by issue reporter --

import { OutlineModel, OutlineElement } from 'vs/editor/contrib/documentSymbols/browser/outlineModel'; import { CancellationToken, CancellationTokenSource, } from 'vs/base/common/cancellation'; import * as dom from 'vs/base/browser/dom'; <del> import { EditorLayoutInfo, EditorOption } from 'vs/editor/common/config/editorOptions'; </del> <ins> import { EditorLayoutInfo, EditorOption, RenderLineNumbersType } from 'vs/editor/common/config/editorOptions'; </ins> import { createStringBuilder } from 'vs/editor/common/core/stringBuilder'; import { RenderLineInput, renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; import { SymbolKind } from 'vs/editor/common/languages';


Question: Type: <bBug</bTesting down in a TypeScript function ! Note that, In the screenshot, is actually at line 1344, the gutter doesn't have enough space for 4 numbers. Also, the visual separation between sticky lines and normal lines looks too subtle for me. VS Code version: Code - Insiders 1.70.0-insider (, 2022-07-29T10:47:14.408Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.10.102.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (18)</summaryExtensionVersion ------ Bookmarks13.3.1 remotehub0.39. remote-containers0.243.0 remote-ssh0.85. remote-ssh-edit0.80.0 remote-wsl0.66.3 remote-repositories0.16.0 material-icon-theme4.19.0 material-theme3.15.2 vscode-eslint2.2.6 gitlens12.1.2 prettier-vscode9.5.0 copilot-nightly1.36.6347 js-debug-nightly2022.7.2717 abracadabra6.14.4 vscode-jest4.6.0 prisma4.1.0 code-spell-checker2.3.4 </details<!-- generated by issue reporter --

this._sessionStore.add(this._editor.onDidLayoutChange(() => this._onDidResize())); this._sessionStore.add(this._editor.onDidChangeModelContent(() => this._updateSoon.schedule())); this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(() => this._update(true))); <ins> const lineNumberOption = this._editor.getOption(EditorOption.lineNumbers); if (lineNumberOption.renderType === RenderLineNumbersType.Relative) { this._sessionStore.add(this._editor.onDidChangeCursorPosition(() => this._update(false))); } </ins> this._update(true); } }


Question: Type: <bBug</bTesting down in a TypeScript function ! Note that, In the screenshot, is actually at line 1344, the gutter doesn't have enough space for 4 numbers. Also, the visual separation between sticky lines and normal lines looks too subtle for me. VS Code version: Code - Insiders 1.70.0-insider (, 2022-07-29T10:47:14.408Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 5.10.102.1-microsoft-standard-WSL2 <details<summarySystem Info</summary </details<details<summaryExtensions (18)</summaryExtensionVersion ------ Bookmarks13.3.1 remotehub0.39. remote-containers0.243.0 remote-ssh0.85. remote-ssh-edit0.80.0 remote-wsl0.66.3 remote-repositories0.16.0 material-icon-theme4.19.0 material-theme3.15.2 vscode-eslint2.2.6 gitlens12.1.2 prettier-vscode9.5.0 copilot-nightly1.36.6347 js-debug-nightly2022.7.2717 abracadabra6.14.4 vscode-jest4.6.0 prisma4.1.0 code-spell-checker2.3.4 </details<!-- generated by issue reporter --

} const innerLineNumberHTML = document.createElement('span'); <del> innerLineNumberHTML.innerText = this._lineNumber.toString(); </del> <ins> const lineNumberOption = this._editor.getOption(EditorOption.lineNumbers); if (lineNumberOption.renderType === RenderLineNumbersType.On || lineNumberOption.renderType === RenderLineNumbersType.Interval && this._lineNumber % 10 === 0) { innerLineNumberHTML.innerText = this._lineNumber.toString(); } else if (lineNumberOption.renderType === RenderLineNumbersType.Relative) { innerLineNumberHTML.innerText = Math.abs(this._lineNumber - this._editor.getPosition().lineNumber).toString(); } </ins> innerLineNumberHTML.className = 'sticky-line-number'; innerLineNumberHTML.style.lineHeight = `${lineHeight}px`; innerLineNumberHTML.style.width = `${layoutInfo.lineNumbersWidth}px`;


Question:
Does this issue occur when all extensions are disabled?: No VS Code Version: 1.70.0 OS Version: Debian 10.8 Steps to Reproduce: a zsh shell with a framework like zim installed shell integration zsh Observe: This breaks all my integrations and I lose history, etc... Usually because default settings do things like
In WSL: Ubuntu-22.04, z4h (zsh for humans) is telling me my ZDOTDIR has been set to /tmp/vscode-zsh . I updated to VSCode 1.70.0 and noticed this. It's a shame because the shell integration worked so well in 1.69.x.
I'll check this out tomorrow but it seems like a candidate for the recovery release. In the meantime you can disable shell integration in your settings and install it manually with these instructions:
This appears to be the only change around ZDOTDIR since 1.69:
I will echo this has also broken my shell configuration to load an SDK for a certain VSCode workspace because it hijacks the early on and doesn't provide any hooks to work around that.
I can reproduce this when using a non-login shell. That's because we reset the in the login rc file which only runs for login shells. Unrelated to the history change
Thanks.
we're planning on releasing the fix in the next couple of days
it's already available in the
to verify, set your to something in your . remove the login args from the profile. and verify that it's whatever you set.
As of 1.70.1, macOS 12.5, this is still broken for me:
looks like we should try to detect if this is used and disable shell integration
FYI, I've tested on macOS, WSL/Win 11, and ChromeOS. On WSL and ChromeOS, ZDOTDIR is set to /tmp/vscode-zsh, but otherwise it's the same as on macOS. When I turn off Shell Integration in the settings and open a new Terminal instance, shell integration appears to work. So maybe has the right idea. And as I said earlier in the thread, this worked without issue on 1.69.x.
setting to worked for now
I think zsh4humans uses powerlevel10k which disables shell integration (or will disable it in the next version?). I think to fix this we actually need to add or something similar similar inside this if statement: Alternatively, should this line be moved above the check? To test this without plugins, unsetting inside your rc should repro.
I don't think that line can be moved above or will override the temporary we have set for vscode but think as you said, we need to also add it before returning when it's been disabled
Or can we remove this: Either there or at the end of whatever injected zsh script that runs last.
we could remove it there for non-login shells. for login shells, it gets reset here and probably can remove line 6
<!-- 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!
I'm trying to set in my .zshrc, but it always ends up reset to my home directory, same behavior in stable/insiders. But I'm not sure whether there is something in my zsh config that does that.
the gets set in not your
Tried that, and it seems like ZDOTDIR ends up set to a tmp folder <img width="636" alt="image" src="https://user-"
not sure then - it works for me - it's the only thing in my file though
I encountered the same problem as I used the following version of Insider, which seems to be fixed in commit , but the problem is not fixed. `
hey all, I've also run into this, not 100% sure though if it's exactly the same or "just" related. I use remote container extension with a Debian based container and ZDOTDIR env isn't respected as long as shellIntegration is enabled. Actually I was using regular code but tried insiders after reading the comments here, without any success. let me know if I should provide more details - I tried so many combinations I can't really exactly remember right now, but of course I'm happy to try something specific if it helps.
Is this fix supposed to be live to the stable release now? If so, I am still having this issue when using zsh4humans.
It's not yet in stable. it should be fixed in insider's now though by
Is this fix scheduled for the next stable version? and when would that be?
yes, it will be next week

} add-zsh-hook precmd __vsc_precmd add-zsh-hook preexec __vsc_preexec <ins> if [[ $options[login] = off ]]; then ZDOTDIR=$USER_ZDOTDIR fi </ins>


Question:
Does this issue occur when all extensions are disabled?: No VS Code Version: 1.70.0 OS Version: Debian 10.8 Steps to Reproduce: a zsh shell with a framework like zim installed shell integration zsh Observe: This breaks all my integrations and I lose history, etc... Usually because default settings do things like
In WSL: Ubuntu-22.04, z4h (zsh for humans) is telling me my ZDOTDIR has been set to /tmp/vscode-zsh . I updated to VSCode 1.70.0 and noticed this. It's a shame because the shell integration worked so well in 1.69.x.
I'll check this out tomorrow but it seems like a candidate for the recovery release. In the meantime you can disable shell integration in your settings and install it manually with these instructions:
This appears to be the only change around ZDOTDIR since 1.69:
I will echo this has also broken my shell configuration to load an SDK for a certain VSCode workspace because it hijacks the early on and doesn't provide any hooks to work around that.
I can reproduce this when using a non-login shell. That's because we reset the in the login rc file which only runs for login shells. Unrelated to the history change
Thanks.
we're planning on releasing the fix in the next couple of days
it's already available in the
to verify, set your to something in your . remove the login args from the profile. and verify that it's whatever you set.
As of 1.70.1, macOS 12.5, this is still broken for me:
looks like we should try to detect if this is used and disable shell integration
FYI, I've tested on macOS, WSL/Win 11, and ChromeOS. On WSL and ChromeOS, ZDOTDIR is set to /tmp/vscode-zsh, but otherwise it's the same as on macOS. When I turn off Shell Integration in the settings and open a new Terminal instance, shell integration appears to work. So maybe has the right idea. And as I said earlier in the thread, this worked without issue on 1.69.x.
setting to worked for now
I think zsh4humans uses powerlevel10k which disables shell integration (or will disable it in the next version?). I think to fix this we actually need to add or something similar similar inside this if statement: Alternatively, should this line be moved above the check? To test this without plugins, unsetting inside your rc should repro.
I don't think that line can be moved above or will override the temporary we have set for vscode but think as you said, we need to also add it before returning when it's been disabled
Or can we remove this: Either there or at the end of whatever injected zsh script that runs last.
we could remove it there for non-login shells. for login shells, it gets reset here and probably can remove line 6
<!-- 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!
I'm trying to set in my .zshrc, but it always ends up reset to my home directory, same behavior in stable/insiders. But I'm not sure whether there is something in my zsh config that does that.
the gets set in not your
Tried that, and it seems like ZDOTDIR ends up set to a tmp folder <img width="636" alt="image" src="https://user-"
not sure then - it works for me - it's the only thing in my file though
I encountered the same problem as I used the following version of Insider, which seems to be fixed in commit , but the problem is not fixed. `
hey all, I've also run into this, not 100% sure though if it's exactly the same or "just" related. I use remote container extension with a Debian based container and ZDOTDIR env isn't respected as long as shellIntegration is enabled. Actually I was using regular code but tried insiders after reading the comments here, without any success. let me know if I should provide more details - I tried so many combinations I can't really exactly remember right now, but of course I'm happy to try something specific if it helps.
Is this fix supposed to be live to the stable release now? If so, I am still having this issue when using zsh4humans.
It's not yet in stable. it should be fixed in insider's now though by
Is this fix scheduled for the next stable version? and when would that be?
yes, it will be next week


Question:
Does this issue occur when all extensions are disabled?: No VS Code Version: 1.70.0 OS Version: Debian 10.8 Steps to Reproduce: a zsh shell with a framework like zim installed shell integration zsh Observe: This breaks all my integrations and I lose history, etc... Usually because default settings do things like
In WSL: Ubuntu-22.04, z4h (zsh for humans) is telling me my ZDOTDIR has been set to /tmp/vscode-zsh . I updated to VSCode 1.70.0 and noticed this. It's a shame because the shell integration worked so well in 1.69.x.
I'll check this out tomorrow but it seems like a candidate for the recovery release. In the meantime you can disable shell integration in your settings and install it manually with these instructions:
This appears to be the only change around ZDOTDIR since 1.69:
I will echo this has also broken my shell configuration to load an SDK for a certain VSCode workspace because it hijacks the early on and doesn't provide any hooks to work around that.
I can reproduce this when using a non-login shell. That's because we reset the in the login rc file which only runs for login shells. Unrelated to the history change
Thanks.
we're planning on releasing the fix in the next couple of days
it's already available in the
to verify, set your to something in your . remove the login args from the profile. and verify that it's whatever you set.
As of 1.70.1, macOS 12.5, this is still broken for me:
looks like we should try to detect if this is used and disable shell integration
FYI, I've tested on macOS, WSL/Win 11, and ChromeOS. On WSL and ChromeOS, ZDOTDIR is set to /tmp/vscode-zsh, but otherwise it's the same as on macOS. When I turn off Shell Integration in the settings and open a new Terminal instance, shell integration appears to work. So maybe has the right idea. And as I said earlier in the thread, this worked without issue on 1.69.x.
setting to worked for now
I think zsh4humans uses powerlevel10k which disables shell integration (or will disable it in the next version?). I think to fix this we actually need to add or something similar similar inside this if statement: Alternatively, should this line be moved above the check? To test this without plugins, unsetting inside your rc should repro.
I don't think that line can be moved above or will override the temporary we have set for vscode but think as you said, we need to also add it before returning when it's been disabled
Or can we remove this: Either there or at the end of whatever injected zsh script that runs last.
we could remove it there for non-login shells. for login shells, it gets reset here and probably can remove line 6
<!-- 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!
I'm trying to set in my .zshrc, but it always ends up reset to my home directory, same behavior in stable/insiders. But I'm not sure whether there is something in my zsh config that does that.
the gets set in not your
Tried that, and it seems like ZDOTDIR ends up set to a tmp folder <img width="636" alt="image" src="https://user-"
not sure then - it works for me - it's the only thing in my file though
I encountered the same problem as I used the following version of Insider, which seems to be fixed in commit , but the problem is not fixed. `
hey all, I've also run into this, not 100% sure though if it's exactly the same or "just" related. I use remote container extension with a Debian based container and ZDOTDIR env isn't respected as long as shellIntegration is enabled. Actually I was using regular code but tried insiders after reading the comments here, without any success. let me know if I should provide more details - I tried so many combinations I can't really exactly remember right now, but of course I'm happy to try something specific if it helps.
Is this fix supposed to be live to the stable release now? If so, I am still having this issue when using zsh4humans.
It's not yet in stable. it should be fixed in insider's now though by
Is this fix scheduled for the next stable version? and when would that be?
yes, it will be next week

# Prevent the script recursing when setting up if [ -n "$VSCODE_SHELL_INTEGRATION" ]; then <ins> ZDOTDIR=$USER_ZDOTDIR </ins> builtin return fi


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

"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "7.0.1", <del> "xterm": "5.0.0-beta.32", "xterm-addon-canvas": "0.2.0-beta.15", "xterm-addon-search": "0.10.0-beta.3", "xterm-addon-serialize": "0.8.0-beta.3", "xterm-addon-unicode11": "0.4.0-beta.3", "xterm-addon-webgl": "0.13.0-beta.32", </del> <ins> "xterm": "5.0.0-beta.35", "xterm-addon-canvas": "0.2.0-beta.17", "xterm-addon-search": "0.10.0-beta.5", "xterm-addon-serialize": "0.8.0-beta.5", "xterm-addon-unicode11": "0.4.0-beta.5", "xterm-addon-webgl": "0.13.0-beta.35", </ins> "xterm-headless": "5.0.0-beta.5", "yauzl": "^2.9.2", "yazl": "^2.4.3"


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

"tas-client-umd": "0.1.6", "vscode-oniguruma": "1.6.1", "vscode-textmate": "7.0.1", <del> "xterm": "5.0.0-beta.32", "xterm-addon-canvas": "0.2.0-beta.15", "xterm-addon-search": "0.10.0-beta.3", "xterm-addon-unicode11": "0.4.0-beta.3", "xterm-addon-webgl": "0.13.0-beta.32" </del> <ins> "xterm": "5.0.0-beta.35", "xterm-addon-canvas": "0.2.0-beta.17", "xterm-addon-search": "0.10.0-beta.5", "xterm-addon-unicode11": "0.4.0-beta.5", "xterm-addon-webgl": "0.13.0-beta.35" </ins> } }


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

resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-7.0.1.tgz#8118a32b02735dccd14f893b495fa5389ad7de79" integrity sha512-zQ5U/nuXAAMsh691FtV0wPz89nSkHbs+IQV8FDk+wew9BlSDhf4UmWGlWJfTR2Ti6xZv87Tj5fENzKf6Qk7aLw== <del> xterm-addon-canvas@0.2.0-beta.15: version "0.2.0-beta.15" resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.2.0-beta.15.tgz#de863e46410b1de357b153abf1984227777760e4" integrity sha512-E1pNCDSVTINchwWLysZ9ZD/BPv1WLGV52xRHB00US1PHHELbhtvms+6dZ44WZEDXhtfpptRZ1VBx+QpvfJIuvw== xterm-addon-search@0.10.0-beta.3: version "0.10.0-beta.3" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.10.0-beta.3.tgz#5194434d86105637c71f6f20139a9d0b5c1a956a" integrity sha512-UeGm/ymnp7HUYJJtsP0D+bljOWbdk3MctcLJ+0jv8AmU6YlAzJFtouvYSQrD5SAMyht5CRsvjzFgqic9X02JYg== xterm-addon-unicode11@0.4.0-beta.3: version "0.4.0-beta.3" resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0-beta.3.tgz#f350184155fafd5ad0d6fbf31d13e6ca7dea1efa" integrity sha512-FryZAVwbUjKTmwXnm1trch/2XO60F5JsDvOkZhzobV1hm10sFLVuZpFyHXiUx7TFeeFsvNP+S77LAtWoeT5z+Q== xterm-addon-webgl@0.13.0-beta.32: version "0.13.0-beta.32" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.13.0-beta.32.tgz#ae7335f788ae611733e03f6ca38280ab7b86d212" integrity sha512-xOudNzYXaRh9QZ+IigXM5EB3bM8l3/F8F35EpJRYvvsylVxiB6Km8X8l7+nxlWt+uYdnHZs0ka2rvtL8kOP/uw== xterm@5.0.0-beta.32: version "5.0.0-beta.32" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.0.0-beta.32.tgz#62bb9902429c0055fd2fd85c9eecfbf1756ed31c" integrity sha512-OAM1GaBs/chK63Cr86XbVhfVCLLXLpNxxFrv3RK9xoyb9dwiY3gaMxK9jeGzTnrbGLWJb+k5nxaC0rx2YsHvUA== </del> <ins> xterm-addon-canvas@0.2.0-beta.17: version "0.2.0-beta.17" resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.2.0-beta.17.tgz#e84a86530b20bd3edcce16b4566f346cd186ab4d" integrity sha512-2ukPdCA92VTFYQRE56ylzvI3cfaQYDWd/Mc4jlEItI6sV/EA5RnUbbP+2sFIx0JlmHK6nVYXXNY2p6QRB7MRew== xterm-addon-search@0.10.0-beta.5: version "0.10.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.10.0-beta.5.tgz#a2cb16bda4ddf8783b80433155ad94f5822271f8" integrity sha512-kjog7cm1iEZ2XyQFVs3KAvoI2pKoX0cq2WWjL0FuXYXpKQ9vXmfrWSR7PiJ6zpTIRvr6UtaSGKhmZVHLNA79WA== xterm-addon-unicode11@0.4.0-beta.5: version "0.4.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0-beta.5.tgz#3900e66f10d2e506133b61d7421aab6878d32665" integrity sha512-+g+fuxAd/tkCEJ/jhdnebXKtdPrhsu4VKWNnB/3qM35GbuGQOasmYFYnKL+HYZMpbQ6YqeZcXTVg/wnCTttz0g== xterm-addon-webgl@0.13.0-beta.35: version "0.13.0-beta.35" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.13.0-beta.35.tgz#98b5dc102583120de25c7c6e0f35cd34ab6bef98" integrity sha512-powgeb3ifEZK7zWwLJuE8YRz/Z0UzDrrVA9NTx9mH7+vWxrGt9ZgroychoeCqZBvKMofiUM5vlf1oWdSmsMfzw== xterm@5.0.0-beta.35: version "5.0.0-beta.35" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.0.0-beta.35.tgz#3bbf5780c98aaaa6476e7590dff1d8f5014fce9d" integrity sha512-tzJTel1E/FmB0VQDb44xApVB+ln+BifIbHD4V9x9Z3D9m1cMmPHy8J8efdILkn1TxXGlCl7VC35nG122Qq5exw== </ins>


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

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


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

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


Question:
<!-- 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. --vscode- a directory to clone your repo into cloned repo :bug: branch context is not preserved This impacts Continue Working On--branch context is preserved for Clone in Container and Create New Codespace. I propose adding a new optional query parameter to the uri handler here: and passing that to the command as an optional argument here Then after cloning here: and before opening the repo in a new window, we would perform the ref checkout:
will you create a test plan item/verification steps for this feature?
yes I will!

); } <del> async cloneRepository(url?: string, parentPath?: string, options: { recursive?: boolean } = {}): Promise<void> { </del> <ins> async cloneRepository(url?: string, parentPath?: string, options: { recursive?: boolean; ref?: string } = {}): Promise<void> { </ins> if (!url || typeof url !== 'string') { url = await pickRemoteSource({ providerLabel: provider => localize('clonefrom', "Clone from {0}", provider.name),


Question:
<!-- 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. --vscode- a directory to clone your repo into cloned repo :bug: branch context is not preserved This impacts Continue Working On--branch context is preserved for Clone in Container and Create New Codespace. I propose adding a new optional query parameter to the uri handler here: and passing that to the command as an optional argument here Then after cloning here: and before opening the repo in a new window, we would perform the ref checkout:
will you create a test plan item/verification steps for this feature?
yes I will!

(progress, token) => this.git.clone(url!, { parentPath: parentPath!, progress, recursive: options.recursive }, token) ); <ins> if (options.ref !== undefined) { const repository = this.model.getRepository(Uri.file(repositoryPath)); await repository?.checkout(options.ref); } </ins> const config = workspace.getConfiguration('git'); const openAfterClone = config.get<'always' | 'alwaysNewWindow' | 'whenNoFolderOpen' | 'prompt'>('openAfterClone');


Question:
<!-- 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. --vscode- a directory to clone your repo into cloned repo :bug: branch context is not preserved This impacts Continue Working On--branch context is preserved for Clone in Container and Create New Codespace. I propose adding a new optional query parameter to the uri handler here: and passing that to the command as an optional argument here Then after cloning here: and before opening the repo in a new window, we would perform the ref checkout:
will you create a test plan item/verification steps for this feature?
yes I will!

} @command('git.clone') <del> async clone(url?: string, parentPath?: string): Promise<void> { await this.cloneRepository(url, parentPath); </del> <ins> async clone(url?: string, parentPath?: string, options?: { ref?: string }): Promise<void> { await this.cloneRepository(url, parentPath, options); </ins> } @command('git.cloneRecursive')


Question:
<!-- 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. --vscode- a directory to clone your repo into cloned repo :bug: branch context is not preserved This impacts Continue Working On--branch context is preserved for Clone in Container and Create New Codespace. I propose adding a new optional query parameter to the uri handler here: and passing that to the command as an optional argument here Then after cloning here: and before opening the repo in a new window, we would perform the ref checkout:
will you create a test plan item/verification steps for this feature?
yes I will!

private clone(uri: Uri): void { const data = querystring.parse(uri.query); <ins> const ref = data.ref; </ins> if (!data.url) { console.warn('Failed to open URI:', uri);


Question:
<!-- 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. --vscode- a directory to clone your repo into cloned repo :bug: branch context is not preserved This impacts Continue Working On--branch context is preserved for Clone in Container and Create New Codespace. I propose adding a new optional query parameter to the uri handler here: and passing that to the command as an optional argument here Then after cloning here: and before opening the repo in a new window, we would perform the ref checkout:
will you create a test plan item/verification steps for this feature?
yes I will!

return; } <ins> if (ref !== undefined && typeof ref !== 'string') { console.warn('Failed to open URI:', uri); return; } </ins> let cloneUri: Uri; try { let rawUri = Array.isArray(data.url) ? data.url[0] : data.url;


Question:
<!-- 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. --vscode- a directory to clone your repo into cloned repo :bug: branch context is not preserved This impacts Continue Working On--branch context is preserved for Clone in Container and Create New Codespace. I propose adding a new optional query parameter to the uri handler here: and passing that to the command as an optional argument here Then after cloning here: and before opening the repo in a new window, we would perform the ref checkout:
will you create a test plan item/verification steps for this feature?
yes I will!

return; } <del> commands.executeCommand('git.clone', cloneUri.toString(true)); </del> <ins> commands.executeCommand('git.clone', cloneUri.toString(true), undefined, { ref: ref }); </ins> } dispose(): void {


Question:
<!-- 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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.

import { Disposable } from 'vs/base/common/lifecycle'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { Registry } from 'vs/platform/registry/common/platform'; <del> import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; </del> <ins> import { ILifecycleService, LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; </ins> import { Action2, IAction2Options, MenuRegistry, registerAction2 } from 'vs/platform/actions/common/actions'; import { ServicesAccessor } from 'vs/editor/browser/editorExtensions'; import { localize } from 'vs/nls';


Question:
<!-- 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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.

@IQuickInputService private readonly quickInputService: IQuickInputService, @ICommandService private commandService: ICommandService, @IContextKeyService private readonly contextKeyService: IContextKeyService, <del> @IFileDialogService private readonly fileDialogService: IFileDialogService </del> <ins> @IFileDialogService private readonly fileDialogService: IFileDialogService, @ILifecycleService private readonly lifecycleService: ILifecycleService </ins> ) { super();


Question:
<!-- 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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.

this.shouldShowViewsContext = EDIT_SESSIONS_SHOW_VIEW.bindTo(this.contextKeyService); this._register(this.fileService.registerProvider(EditSessionsFileSystemProvider.SCHEMA, new EditSessionsFileSystemProvider(this.editSessionsWorkbenchService))); <ins> this.lifecycleService.onWillShutdown((e) => e.join(this.autoStoreEditSession(), { id: 'autoStoreEditSession', label: localize('autoStoreEditSession', 'Storing current edit session...') })); } private async autoStoreEditSession() { if (this.configurationService.getValue('workbench.experimental.editSessions.autoStore') === 'onShutdown') { await this.progressService.withProgress({ location: ProgressLocation.Window, type: 'syncing', title: localize('store edit session', 'Storing edit session...') }, async () => this.storeEditSession(false)); } </ins> } private registerViews() {


Question:
<!-- 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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.

Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({ ...workbenchConfigurationNodeBase, 'properties': { <ins> 'workbench.experimental.editSessions.autoStore': { enum: ['onShutdown', 'off'], enumDescriptions: [ localize('autoStore.onShutdown', "Automatically store current edit session on window close."), localize('autoStore.off', "Never attempt to automatically store an edit session.") ], 'type': 'string', 'tags': ['experimental', 'usesOnlineServices'], 'default': 'off', 'markdownDescription': localize('autoStore', "Controls whether to automatically store an available edit session for the current workspace."), }, </ins> 'workbench.experimental.editSessions.enabled': { 'type': 'boolean', 'tags': ['experimental', 'usesOnlineServices'],


Question:
<!-- 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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.

import { Event } from 'vs/base/common/event'; import { IViewDescriptorService } from 'vs/workbench/common/views'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; <ins> import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; </ins> const folderName = 'test-folder'; const folderUri = URI.file(`/${folderName}`);


Question:
<!-- 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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.

// Stub out all services instantiationService.stub(IEditSessionsLogService, logService); instantiationService.stub(IFileService, fileService); <ins> instantiationService.stub(ILifecycleService, new class extends mock<ILifecycleService>() { override onWillShutdown = Event.None; }); </ins> instantiationService.stub(INotificationService, new TestNotificationService()); instantiationService.stub(IEditSessionsWorkbenchService, new class extends mock<IEditSessionsWorkbenchService>() { }); instantiationService.stub(IProgressService, ProgressService);


Question:
Looking into adding additional separators that are more common, so that all the additional refactorings are not just clumped under From comment: I was wondering if you would consider adding 2 code action classes that are I think quite common: (Inline) (Move) This would be super valuable for the extension that I'm developing (P42 JavaScript Assistant), but I think also for other extensions. Afaik the TS language server also has actions for example. Originally posted by in
Hey , the new code action widget looks great, and I really like the new code action grouping, I'm wondering if we can define custom code action groups besides the pre-defined groups. ! you can see the java extension contributes a code action (in the light bulb) named "add Javadoc" and it's now under "More Actions..." menu. If we can define a new group like "Sources" via extension, it would be great and more clear that we can put this action in that group.
We have an extension that publishes some code actions. With the latest VSCode, our actions are grouped under 'More Actions...' which in our context is not ideal. We would prefer to be able to define our own grouping for our actions (in extension parlance, I think this means to be able to create our own ). Thanks!

const codeActionGroups = Object.freeze<CodeActionGroup[]>([ { kind: CodeActionKind.QuickFix, title: localize('codeAction.widget.id.quickfix', 'Quick Fix...') }, <del> { kind: CodeActionKind.Extract, title: localize('codeAction.widget.id.extract', 'Extract...'), icon: { codicon: Codicon.wrench } }, { kind: CodeActionKind.Convert, title: localize('codeAction.widget.id.convert', 'Convert...'), icon: { codicon: Codicon.zap, color: 'var(--vscode-editorLightBulbAutoFix-foreground)' } }, { kind: CodeActionKind.SurroundWith, title: localize('codeAction.widget.id.surround', 'Surround With...'), icon: { codicon: Codicon.symbolArray } }, { kind: CodeActionKind.Source, title: localize('codeAction.widget.id.source', 'Source Action...'), icon: { codicon: Codicon.lightBulb, color: 'var(--vscode-editorLightBulb-foreground)' } }, </del> <ins> { kind: CodeActionKind.RefactorExtract, title: localize('codeAction.widget.id.extract', 'Extract...'), icon: { codicon: Codicon.wrench } }, { kind: CodeActionKind.RefactorInline, title: localize('codeAction.widget.id.inline', 'Inline...'), icon: { codicon: Codicon.wrench } }, { kind: CodeActionKind.RefactorRewrite, title: localize('codeAction.widget.id.convert', 'Rewrite...'), icon: { codicon: Codicon.wrench } }, { kind: CodeActionKind.RefactorMove, title: localize('codeAction.widget.id.move', 'Move...'), icon: { codicon: Codicon.wrench } }, { kind: CodeActionKind.SurroundWith, title: localize('codeAction.widget.id.surround', 'Surround With...'), icon: { codicon: Codicon.symbolSnippet } }, { kind: CodeActionKind.Source, title: localize('codeAction.widget.id.source', 'Source Action...'), icon: { codicon: Codicon.symbolFile } }, </ins> uncategorizedCodeActionGroup, ]);


Question:
Looking into adding additional separators that are more common, so that all the additional refactorings are not just clumped under From comment: I was wondering if you would consider adding 2 code action classes that are I think quite common: (Inline) (Move) This would be super valuable for the extension that I'm developing (P42 JavaScript Assistant), but I think also for other extensions. Afaik the TS language server also has actions for example. Originally posted by in
Hey , the new code action widget looks great, and I really like the new code action grouping, I'm wondering if we can define custom code action groups besides the pre-defined groups. ! you can see the java extension contributes a code action (in the light bulb) named "add Javadoc" and it's now under "More Actions..." menu. If we can define a new group like "Sources" via extension, it would be great and more clear that we can put this action in that group.
We have an extension that publishes some code actions. With the latest VSCode, our actions are grouped under 'More Actions...' which in our context is not ideal. We would prefer to be able to define our own grouping for our actions (in extension parlance, I think this means to be able to create our own ). Thanks!

public static readonly Empty = new CodeActionKind(''); public static readonly QuickFix = new CodeActionKind('quickfix'); public static readonly Refactor = new CodeActionKind('refactor'); <del> public static readonly Extract = CodeActionKind.Refactor.append('extract'); public static readonly Convert = CodeActionKind.Refactor.append('rewrite'); </del> <ins> public static readonly RefactorExtract = CodeActionKind.Refactor.append('extract'); public static readonly RefactorInline = CodeActionKind.Refactor.append('inline'); public static readonly RefactorMove = CodeActionKind.Refactor.append('move'); public static readonly RefactorRewrite = CodeActionKind.Refactor.append('rewrite'); </ins> public static readonly Source = new CodeActionKind('source'); public static readonly SourceOrganizeImports = CodeActionKind.Source.append('organizeImports'); public static readonly SourceFixAll = CodeActionKind.Source.append('fixAll');


Question:
! Only seems to appear if I resize the terminal such that a is on its own line.
Cannot repro: !
I can still reproduce this? For example cat this file to your terminal Then drag until a quote is the only thing on one of the lines. This causes the link detection to detect everything below that quote.
Couldn't repro on Windows but I do see some offset problem after the resizes: ! Probably an issue with reflow (mac/Linux)
In tried on my mac and I still can't reproduce: !
Still able to reproduce this, have passed repo steps regarding the private repo offline.
Still struggling to repro, I did notice sometimes it's off by 1 or 2 cells in either direction like this though: <img width="852" alt="Screenshot 2022-12-22 at 5 08 03 pm" src="https://user-"
This happens because of line caching, hovering a wrapped line and then resizing it a little such that the line is still there, the line range will be off: <img width="866" alt="Screenshot 2022-12-22 at 5 12 44 pm" src="https://user-"
That one repro's upstream: <img width="793" alt="Screenshot 2022-12-27 at 6 24 10 am" src="https://user-"Since I can't repro your actual issue I'll fix this and see if that's the underlying issue.
Can still repro this building OSS. Note you do not need to resize the terminal for this to occur if it's already the correct size when you run the task.
Update cannot repro when debugging. So odd
Update again, I can repro this again in insiders. Not sure why debugging is different.
Still can't reproduce so closing as unactionable until there's a solid repro. Insiders: <img width="632" alt="Screenshot 2023-05-08 at 6 43 07 am" src="https://user-"OSS: <img width="637" alt="Screenshot 2023-05-08 at 6 44 55 am" src="https://user-"OSS debugging: <img width="633" alt="Screenshot 2023-05-08 at 6 46 16 am" src="https://user-"cat this file:

"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "8.0.0", <del> "xterm": "5.2.0-beta.2", "xterm-addon-canvas": "0.4.0-beta.1", "xterm-addon-search": "0.11.0-beta.7", </del> <ins> "xterm": "5.2.0-beta.10", "xterm-addon-canvas": "0.4.0-beta.6", "xterm-addon-search": "0.11.0", </ins> "xterm-addon-serialize": "0.9.0", <del> "xterm-addon-unicode11": "0.5.0-beta.5", "xterm-addon-webgl": "0.15.0-beta.1", "xterm-headless": "5.2.0-beta.2", </del> <ins> "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.4", "xterm-headless": "5.2.0-beta.10", </ins> "yauzl": "^2.9.2", "yazl": "^2.4.3" },


Question:
! Only seems to appear if I resize the terminal such that a is on its own line.
Cannot repro: !
I can still reproduce this? For example cat this file to your terminal Then drag until a quote is the only thing on one of the lines. This causes the link detection to detect everything below that quote.
Couldn't repro on Windows but I do see some offset problem after the resizes: ! Probably an issue with reflow (mac/Linux)
In tried on my mac and I still can't reproduce: !
Still able to reproduce this, have passed repo steps regarding the private repo offline.
Still struggling to repro, I did notice sometimes it's off by 1 or 2 cells in either direction like this though: <img width="852" alt="Screenshot 2022-12-22 at 5 08 03 pm" src="https://user-"
This happens because of line caching, hovering a wrapped line and then resizing it a little such that the line is still there, the line range will be off: <img width="866" alt="Screenshot 2022-12-22 at 5 12 44 pm" src="https://user-"
That one repro's upstream: <img width="793" alt="Screenshot 2022-12-27 at 6 24 10 am" src="https://user-"Since I can't repro your actual issue I'll fix this and see if that's the underlying issue.
Can still repro this building OSS. Note you do not need to resize the terminal for this to occur if it's already the correct size when you run the task.
Update cannot repro when debugging. So odd
Update again, I can repro this again in insiders. Not sure why debugging is different.
Still can't reproduce so closing as unactionable until there's a solid repro. Insiders: <img width="632" alt="Screenshot 2023-05-08 at 6 43 07 am" src="https://user-"OSS: <img width="637" alt="Screenshot 2023-05-08 at 6 44 55 am" src="https://user-"OSS debugging: <img width="633" alt="Screenshot 2023-05-08 at 6 46 16 am" src="https://user-"cat this file:

"tas-client-umd": "0.1.6", "vscode-oniguruma": "1.7.0", "vscode-textmate": "8.0.0", <del> "xterm": "5.2.0-beta.2", "xterm-addon-canvas": "0.4.0-beta.1", "xterm-addon-search": "0.11.0-beta.7", "xterm-addon-unicode11": "0.5.0-beta.5", "xterm-addon-webgl": "0.15.0-beta.1" </del> <ins> "xterm": "5.2.0-beta.10", "xterm-addon-canvas": "0.4.0-beta.6", "xterm-addon-search": "0.11.0", "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.4" </ins> } }


Question:
! Only seems to appear if I resize the terminal such that a is on its own line.
Cannot repro: !
I can still reproduce this? For example cat this file to your terminal Then drag until a quote is the only thing on one of the lines. This causes the link detection to detect everything below that quote.
Couldn't repro on Windows but I do see some offset problem after the resizes: ! Probably an issue with reflow (mac/Linux)
In tried on my mac and I still can't reproduce: !
Still able to reproduce this, have passed repo steps regarding the private repo offline.
Still struggling to repro, I did notice sometimes it's off by 1 or 2 cells in either direction like this though: <img width="852" alt="Screenshot 2022-12-22 at 5 08 03 pm" src="https://user-"
This happens because of line caching, hovering a wrapped line and then resizing it a little such that the line is still there, the line range will be off: <img width="866" alt="Screenshot 2022-12-22 at 5 12 44 pm" src="https://user-"
That one repro's upstream: <img width="793" alt="Screenshot 2022-12-27 at 6 24 10 am" src="https://user-"Since I can't repro your actual issue I'll fix this and see if that's the underlying issue.
Can still repro this building OSS. Note you do not need to resize the terminal for this to occur if it's already the correct size when you run the task.
Update cannot repro when debugging. So odd
Update again, I can repro this again in insiders. Not sure why debugging is different.
Still can't reproduce so closing as unactionable until there's a solid repro. Insiders: <img width="632" alt="Screenshot 2023-05-08 at 6 43 07 am" src="https://user-"OSS: <img width="637" alt="Screenshot 2023-05-08 at 6 44 55 am" src="https://user-"OSS debugging: <img width="633" alt="Screenshot 2023-05-08 at 6 46 16 am" src="https://user-"cat this file:

resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== <del> xterm-addon-canvas@0.4.0-beta.1: version "0.4.0-beta.1" resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.1.tgz#f2742b88cd3eb1840b9e7f986c4bfe31e0f4684f" integrity sha512-EfjaN0ujHJ4D8CsVpBig3xPvfRhbzAyOh8piAbNpePZmTpBzc2OQQQvEeklPriKVNDv28WbmY0Zzl5tgYM7vwg== xterm-addon-search@0.11.0-beta.7: version "0.11.0-beta.7" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0-beta.7.tgz#d90bcbe9e8f9238c18ba6145bd7ec2f8e3240052" integrity sha512-i/c774V0/Eon3BIFRsRR3OjKTnMGkccBo12yDkOa40tnAD4aa8FjspE3bxW/Hh1mUEhCSgBSLnMDlK/GwnUC+g== xterm-addon-unicode11@0.5.0-beta.5: version "0.5.0-beta.5" resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.5.0-beta.5.tgz#6992a6f56349e67b903201d52b1ad41ba3469d93" integrity sha512-MaqnU34WTHCUAo7moB4KhynGn03RckI0JJ8E/gXe96EzuCP6bVJIKSc5pc9iFeLF4BX1SuemOqIHYl2Q3u3NTA== xterm-addon-webgl@0.15.0-beta.1: version "0.15.0-beta.1" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.1.tgz#bc3f784c3c467a70542b8a9a8998dbe996287796" integrity sha512-8f4cNXG0+dBMqp+Nvk/ZQ8Wo8s4/KbF24b2VTHTt8DuY5QXt4wSA6+NEdnABV98VYDoHl+KfXl9yyFqkcJYr8Q== xterm@5.2.0-beta.2: version "5.2.0-beta.2" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.2.tgz#67369235a54f41179922e662df40ff4c7c974787" integrity sha512-MRAdWRfV80ae0Q3Caq/mfmCwnZZZ89Z8i/sAleio5g5dpsst9IXc0zeFpPnOvUWmtVy5P1LbfU9YCy47449DWw== </del> <ins> xterm-addon-canvas@0.4.0-beta.6: version "0.4.0-beta.6" resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.6.tgz#f8cb09ef980f1fa9d73f067e00f7a879c374ad68" integrity sha512-x5OY0VOJxqvXdyXpW9aug3vaeQX/+r7TZk13MujReuJRLRAjCHaH6ep6g9ZOVlqa8VCBWPwmm/eXH05SGUbnQQ== xterm-addon-search@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0.tgz#2a00ff7f9848f6140e7c4d1782486b0b18b06e0d" integrity sha512-6U4uHXcQ7G5igsdaGqrJ9ehm7vep24bXqWxuy3AnIosXF2Z5uy2MvmYRyTGNembIqPV/x1YhBQ7uShtuqBHhOQ== xterm-addon-unicode11@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.5.0.tgz#41c0d96acc1e3bb6c6596eee64e163b6bca74be7" integrity sha512-Jm4/g4QiTxiKiTbYICQgC791ubhIZyoIwxAIgOW8z8HWFNY+lwk+dwaKEaEeGBfM48Vk8fklsUW9u/PlenYEBg== xterm-addon-webgl@0.15.0-beta.4: version "0.15.0-beta.4" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.4.tgz#d03a98e446372a5dbb7d92075d1f125eec23b030" integrity sha512-W9N0+5i3trQhgBOHDsnNiBbBiJpleFenY668wWaZ9GlvWseCTnjnWis1kfnM9WASDh/0+7aOjWrD089o+QeHGQ== xterm@5.2.0-beta.10: version "5.2.0-beta.10" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.10.tgz#33e67a8397937dd8b731a2f315c67f4bd63f3c28" integrity sha512-3zVxU/0XrUWpvOIU/KkXREweq7hCxNGFt4asT4D/SsRlRKYOnO+vooz1CjLO6USY++iHXicgf8PdgRDeYj5fFQ== </ins>