jiebi/CodeConvo huggingface dataset:
Code change:
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.

Related discussion:
text: }; 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); } }
Code change:
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.

Related discussion:
text: 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();
Code change:
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.

Related discussion:
text: 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()))); }
Code change:
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-"

Related discussion:
text: 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"
Code change:
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-"

Related discussion:
text: __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
Code change:
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 --

Related discussion:
text: 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';
Code change:
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 --

Related discussion:
text: 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); } }
Code change:
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 --

Related discussion:
text: } 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`;
Code change:
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: !

Related discussion:
text: "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"
Code change:
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: !

Related discussion:
text: "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> } }
Code change:
<!-- 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!

Related discussion:
text: ); } <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),
Code change:
<!-- 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!

Related discussion:
text: (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');
Code change:
<!-- 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!

Related discussion:
text: } @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')
Code change:
<!-- 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!

Related discussion:
text: 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);
Code change:
<!-- 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!

Related discussion:
text: 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;
Code change:
<!-- 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!

Related discussion:
text: return; } <del> commands.executeCommand('git.clone', cloneUri.toString(true)); </del> <ins> commands.executeCommand('git.clone', cloneUri.toString(true), undefined, { ref: ref }); </ins> } dispose(): void {
Code change:
<!-- 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.

Related discussion:
text: 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';