jiebi/CodeConvo huggingface dataset:
Code change:
repro: in settings notebook search filter to look at outputs all editors for something that only appears in outputs on the result and wait for the results to convert to rich notebook results list focus has shifted !
Hi - I'm attempting to replicate this bug, but cannot generate the output from a notebook because my build (Code - OSS Dev) crashes when I select a kernel for my notebook with the message . I am getting the extension form How were you able to get the Jupyter notebook running in your build?
I installed the Jupyter extension via the vsix that is in the marketplace install page.
Thank you for the reply! I still run into the same error after installing the extensions from vsix when I select the kernel. Console output
Hmm, I'm not sure why this would happen. Since this is not really related to this issue directly, could you file a new issue?
I believe the issue is related to this line in folderMatch.allDownstreamFileMatches() is returning a set of notebook files that excludes the parent file of the current selection.

Related discussion:
text: if (!this.tree.getFocus().includes(match) || !this.tree.getSelection().includes(match)) { this.tree.setSelection([match], getSelectionKeyboardEvent()); <ins> this.tree.setFocus([match]); </ins> } }
Code change:
a notebook and run a cell that produces an output long enough to scroll, e.g within the output element :bug: the output element scrolls to the top to select the first link

Related discussion:
text: return; } <del> this._webview.focusOutput(cell.id, this._webviewFocused); </del> <ins> if (!options?.skipReveal) { this._webview.focusOutput(cell.id, this._webviewFocused); } </ins> cell.updateEditState(CellEditState.Preview, 'focusNotebookCell'); cell.focusMode = CellFocusMode.Output;
Code change:
Testing Up / down, go to top / bottom always targets the editor's scroll position, not the cell's scroll position. (Related: )
It actually only navigates the input cells. I can then tab into the input cell, but not the output cell. I think for accessibility there would have to be a way to focus the output cell, so that can be scrolled too?
I also see this, page up/down, ctrl+home/end act strangely
We didn't update when clauses for arrow keys and page down/ups so when the focus is inside the scrollable output, it scrolls both the output and the editor.

Related discussion:
text: if (e.ctrlKey || e.shiftKey) { return; } <del> if (e.code === 'ArrowDown' || e.code === 'End' || e.code === 'ArrowUp' || e.code === 'Home') { </del> <ins> if (e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'End' || e.code === 'Home' || e.code === 'PageUp' || e.code === 'PageDown') { </ins> // These should change the scroll position, not adjust the selected cell in the notebook e.stopPropagation(); }
Code change:
It seems the extension's raw is used for the text here. To combat this I had to restate my extension's name in the extension description, which probably isn't the desired approach. I think ideally the extension name would be featured prominently, and the extension description would be below it or something. <img width="1040" alt="image" src="https://user-"<img width="777" alt="image" src="https://user-"Demo:

Related discussion:
text: // group controllers by extension for (const group of groupBy(others, (a, b) => a.extension.value === b.extension.value ? 0 : 1)) { const extension = this._extensionService.extensions.find(extension => extension.identifier.value === group[0].extension.value); <del> const source = extension?.description ?? group[0].extension.value; </del> <ins> const source = extension?.displayName ?? extension?.description ?? group[0].extension.value; </ins> if (group.length > 1) { quickPickItems.push({ label: source,
Code change:
Type: <bBug</bdark v2 theme files from the explorer and drag then in to an editor bug There's no background to the dragged element label so it blends into the editor text ! VS Code version: Code - Insiders 1.78.0-insider (Universal) (, 2023-04-17T12:50:42.586Z) OS version: Darwin x64 22.4.0 Modes: Sandboxed: Yes <details<summarySystem Info</summary </details<details<summaryExtensions (51)</summaryExtensionVersion ------ tsl-problem-matcher0.6.2 comment-tagged-templates0.3.2 docs-view0.0.11 emojisense0.9.1 folder-source-actions0.2.1 markdown-mermaid1.18.1 vscode-eslint2.4.0 kusto0.4.3 typescript-notebook2.0.6 EditorConfig0.16.4 codespaces1.14.5 copilot-nightly1.82.24 vscode-pull-request-github0.63. vscode-drawio1.6.6 vscode-postfix-ts1.12.1 search-editor-apply-changes0.1.1 latex-workshop9.8.2 vscode-tree-sitter-query0.0.1 vscode-position1.1.2 template-string-converter0.6.1 vscode-docker1.25.0 vscode-language-pack-de1.77. vscode-language-pack-zh-hans1.77. isort2023.9. python2023.7. vscode-pylance2023.4.21 jupyter2023.4. jupyter-keymap1.1.0 jupyter-renderers1.0.15 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.290.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.3 cpptools1.15.2 hexeditor1.9.11 js-debug-nightly2023.4.1317 live-server0.5. remote-explorer0.5. remote-server1.1. test-adapter-converter0.1.7 vscode-github-issue-notebooks0.0.128 vscode-js-profile-flame1.0.5 vscode-marketplace-extension-browser0.0.7 vsliveshare1.0.5857 code-spell-checker2.20.4 ayu1.0.5 luna-paint0.16.0 sort-lines1.9.1 fast-arrow1.0.8 (2 theme extensions excluded) </details<!-- generated by issue reporter --
I believe the background normally comes from this line:

Related discussion:
text: "inputOption.activeBackground": "#2489db82", "inputOption.activeBorder": "#2488db", "keybindingLabel.foreground": "#cccccc", <del> "list.activeSelectionBackground": "#ffffff0f", </del> <ins> "list.activeSelectionBackground": "#323232", </ins> "list.activeSelectionIconForeground": "#ffffff", "list.activeSelectionForeground": "#ffffff", "menu.background": "#1f1f1f",
Code change:
This throws the exception below. This happens when logging objects without prototypes, e.g . Instead of the property access should be used

Related discussion:
text: return cloneAndChange(data, value => { // If it's a trusted value it means it's okay to skip cleaning so we don't clean it <del> if (value instanceof TelemetryTrustedValue || value.hasOwnProperty('isTrustedTelemetryValue')) { </del> <ins> if (value instanceof TelemetryTrustedValue || Object.hasOwnProperty.call(value, 'isTrustedTelemetryValue')) { </ins> return value.value; }
Code change:
Open a file with multiple changed regions in git Move cursor inside/next to some change Run "Show Next Change" (alt+f3) It reveals and shows a different change- I think it always shows the last one in the editor. It should show the next one after the cursor position I can press it multiple times to cycle through changes, and that's correct, but it always starts with the last change
I'd like to fix this for April, but it looks like the change could be risky. I will fix it for May.
Found a low risk fix.
This works, thanks! But one thing that my muscle memory is unsure about, did this command previously move the cursor? I'm noticing that if I press it multiple times, then press escape, the view moves back to the place where I started, when I'm expecting this to be like a "navigate" action. I can open a new issue, or if it's always worked like this, it's fine
I went back to 1.74 to check, and it didn't move the cursor there. "Go to Next Change" will move the cursor though.

Related discussion:
text: } let index: number; <del> if (this.editor.hasModel() && (typeof lineNumber === 'number')) { </del> <ins> if (this.editor.hasModel() && (typeof lineNumber === 'number' || !this.widget.provider)) { </ins> index = this.model.findNextClosestChange(typeof lineNumber === 'number' ? lineNumber : this.editor.getPosition().lineNumber, true, this.widget.provider); } else { const providerChanges: number[] = this.model.mapChanges.get(this.widget.provider) ?? this.model.mapChanges.values().next().value;
Code change:
Open a file with multiple changed regions in git Move cursor inside/next to some change Run "Show Next Change" (alt+f3) It reveals and shows a different change- I think it always shows the last one in the editor. It should show the next one after the cursor position I can press it multiple times to cycle through changes, and that's correct, but it always starts with the last change
I'd like to fix this for April, but it looks like the change could be risky. I will fix it for May.
Found a low risk fix.
This works, thanks! But one thing that my muscle memory is unsure about, did this command previously move the cursor? I'm noticing that if I press it multiple times, then press escape, the view moves back to the place where I started, when I'm expecting this to be like a "navigate" action. I can open a new issue, or if it's always worked like this, it's fine
I went back to 1.74 to check, and it didn't move the cursor there. "Go to Next Change" will move the cursor though.

Related discussion:
text: const possibleChangesLength = possibleChanges.length; if (inclusive) { <del> if ((getModifiedEndLineNumber(change.change) >= lineNumber) && (change.change.modifiedStartLineNumber <= lineNumber)) { </del> <ins> if (getModifiedEndLineNumber(change.change) >= lineNumber) { </ins> if (preferredProvider && change.label !== preferredProvider) { possibleChanges.push(i); } else {
Code change:
Testing !
Looking through the code, it seems that it comes from returning multiple from my for the search editor. The problem is with the functionality that allows certain lines to be underlined for mouse definition hover. Instead of underlining the lines individually, it underlines the whole range starting with the start of the first range and ends at the end of the last range. cc
I think the underlines are by the go to definition feature and not by the link provider. Do you think the API is used incorrectly or is there an issue on the UI side?
The UI receives two locations for the definition request. To draw the underline it merges both into a combined range. Looks like it doesn't check if the origin ranges actually contains the position at which the request has been made - I am unsure if that's on purpose or not. So, there might be something in the UI side to fix but the extension also return bogous data. It looks like it return all results when being asks for the definition . That's not how it is intended to work and either a the file itself should be used or no definition should be provided <img width="1461" alt="Screenshot 2023-06-13 at 15 32 19" src=""
I'm not sure if I understand this correctly. What is the position at which the request had been made and what would be wrong with this being the origin? Makes sense. I haven't actually editing anything in this extension before, so I'll take another look at what was intended when it was first implemented.
I'm taking another look at this and I have a few questions about the API. I think that the original intention of using a definition provider was this: so that double-clicking the filename in the search editor would pop up references to the code snippets that are directly below it. Given this, I'm wondering: If I want multiple references listed like this, do I get the provider to return more than one and they would all have the same ? What is the difference between the and ? I read the docs and I don't know the difference between the full target range and the span.
The has two ends - the origin at which it starts and its target to where it goes. The origin defaults to the word at the current position (cursor) but can be refined if that isn't good enough. The two target ranges are the whole target and its focal point, think of a function where the whole function (comment, signature, body) is and its name is - when navigation a definition link the cursor is placed at the target selection range but the whole targetRange is reveal and/or highlighted etc.

Related discussion:
text: const lineResult = parseSearchResults(document, token)[position.line]; if (!lineResult) { return []; } if (lineResult.type === 'file') { <del> return lineResult.allLocations; </del> <ins> return lineResult.allLocations.map(l => ({ ...l, originSelectionRange: lineResult.location.originSelectionRange })); </ins> } const location = lineResult.locations.find(l => l.originSelectionRange.contains(position));
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. --. However, it is very long and explicit and thus decreases readability: I would like to request a new variable, , that would be its shorter alias that also stands out visually due to no alphanumeric characters: This is inspired by .
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!

Related discussion:
text: { label: 'fileBasename', detail: vscode.l10n.t("The current opened file's basename") }, { label: 'fileBasenameNoExtension', detail: vscode.l10n.t("The current opened file's basename with no file extension") }, { label: 'defaultBuildTask', detail: vscode.l10n.t("The name of the default build task. If there is not a single default build task then a quick pick is shown to choose the build task.") }, <del> { label: 'pathSeparator', detail: vscode.l10n.t("The character used by the operating system to separate components in file paths") }, </del> <ins> { label: 'pathSeparator', detail: vscode.l10n.t("The character used by the operating system to separate components in file paths. Is also aliased to '/'.") }, </ins> { label: 'extensionInstallFolder', detail: vscode.l10n.t("The path where an an extension is installed."), param: 'publisher.extension' }, ].map(variable => ({ label: `${${variable.label}}`,
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. --. However, it is very long and explicit and thus decreases readability: I would like to request a new variable, , that would be its shorter alias that also stands out visually due to no alphanumeric characters: This is inspired by .
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!

Related discussion:
text: FileDirnameBasename = 'fileDirnameBasename', ExecPath = 'execPath', ExecInstallFolder = 'execInstallFolder', <del> PathSeparator = 'pathSeparator' </del> <ins> PathSeparator = 'pathSeparator', PathSeparatorAlias = '/' </ins> } export class VariableError extends Error {
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. --. However, it is very long and explicit and thus decreases readability: I would like to request a new variable, , that would be its shorter alias that also stands out visually due to no alphanumeric characters: This is inspired by .
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!

Related discussion:
text: return match; } case 'pathSeparator': <ins> case '/': </ins> return paths.sep; default:
Code change:
Testing I'm not clear on what unforwarding a port means so this maybe expected, but we do detect that the process is no longer running but it still appears in the list: !
can you please provide the steps you used to get here? If port forwarding is properly set (setting + reload) then yes, the port should be unforwarded and no longer appear in the list.
Run the above Python script in integrated terminal when using Remote-SSH, it should start appearing in the list along with process ID under "Running process" column. Kill process using in a separate terminal.
Also confirming I made sure this was done as well.
Thank you for the steps!
When verifying, please test that the port is unforwarded with both and are used.
The port is not unforwarded when is used. It is however unforwarded when is used. I'm testing with the vscode-remote-try-node repo and the default launch config.
The fix works for me though, with the original Python script I provided.
I'm not able to reproduce this. It's possible for what you describe to occur if the process is terminated before we have a chance notice that it's running. If you see this again can you please set the log level to debug, repro, and share logs from Remote Extension Host and Window? Closing again for testing.
I am unable to reproduce the issue with vscode-remote-try-node on Codespaces or Dev Containers, though it did take a bit longer for the port to close on Codespaces. Marking as verified.

Related discussion:
text: import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { Extensions, IViewContainersRegistry, IViewsRegistry, ViewContainer, ViewContainerLocation } from 'vs/workbench/common/views'; <del> import { Attributes, AutoTunnelSource, IRemoteExplorerService, makeAddress, mapHasAddressLocalhostOrAllInterfaces, OnPortForward, PORT_AUTO_FORWARD_SETTING, PORT_AUTO_SOURCE_SETTING, PORT_AUTO_SOURCE_SETTING_HYBRID, PORT_AUTO_SOURCE_SETTING_OUTPUT, PORT_AUTO_SOURCE_SETTING_PROCESS, TUNNEL_VIEW_CONTAINER_ID, TUNNEL_VIEW_ID, TunnelSource } from 'vs/workbench/services/remote/common/remoteExplorerService'; </del> <ins> import { Attributes, AutoTunnelSource, IRemoteExplorerService, makeAddress, mapHasAddressLocalhostOrAllInterfaces, OnPortForward, PORT_AUTO_FORWARD_SETTING, PORT_AUTO_SOURCE_SETTING, PORT_AUTO_SOURCE_SETTING_HYBRID, PORT_AUTO_SOURCE_SETTING_OUTPUT, PORT_AUTO_SOURCE_SETTING_PROCESS, Tunnel, TUNNEL_VIEW_CONTAINER_ID, TUNNEL_VIEW_ID, TunnelSource } from 'vs/workbench/services/remote/common/remoteExplorerService'; </ins> import { forwardedPortsViewEnabled, ForwardPortAction, OpenPortInBrowserAction, TunnelPanel, TunnelPanelDescriptor, TunnelViewModel, OpenPortInPreviewAction, openPreviewEnabledContext } from 'vs/workbench/contrib/remote/browser/tunnelView'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
Code change:
Testing I'm not clear on what unforwarding a port means so this maybe expected, but we do detect that the process is no longer running but it still appears in the list: !
can you please provide the steps you used to get here? If port forwarding is properly set (setting + reload) then yes, the port should be unforwarded and no longer appear in the list.
Run the above Python script in integrated terminal when using Remote-SSH, it should start appearing in the list along with process ID under "Running process" column. Kill process using in a separate terminal.
Also confirming I made sure this was done as well.
Thank you for the steps!
When verifying, please test that the port is unforwarded with both and are used.
The port is not unforwarded when is used. It is however unforwarded when is used. I'm testing with the vscode-remote-try-node repo and the default launch config.
The fix works for me though, with the original Python script I provided.
I'm not able to reproduce this. It's possible for what you describe to occur if the process is terminated before we have a chance notice that it's running. If you see this again can you please set the log level to debug, repro, and share logs from Remote Extension Host and Window? Closing again for testing.
I am unable to reproduce the issue with vscode-remote-try-node on Codespaces or Dev Containers, though it did take a bit longer for the port to close on Codespaces. Marking as verified.

Related discussion:
text: private async handleCandidateUpdate(removed: Map<string, { host: string; port: number }>) { const removedPorts: number[] = []; <del> let autoForwarded: Set<string>; </del> <ins> let autoForwarded: Map<string, string | Tunnel>; </ins> if (this.unforwardOnly) { <del> autoForwarded = new Set(); </del> <ins> autoForwarded = new Map(); </ins> for (const entry of this.remoteExplorerService.tunnelModel.forwarded.entries()) { if (entry[1].source.source === TunnelSource.Auto) { <del> autoForwarded.add(entry[0]); </del> <ins> autoForwarded.set(entry[0], entry[1]); </ins> } } } else { <del> autoForwarded = this.autoForwarded; </del> <ins> autoForwarded = new Map(this.autoForwarded.entries()); </ins> } for (const removedPort of removed) { const key = removedPort[0]; <del> const value = removedPort[1]; if (autoForwarded.has(key)) { </del> <ins> let value = removedPort[1]; const forwardedValue = mapHasAddressLocalhostOrAllInterfaces(autoForwarded, value.host, value.port); if (forwardedValue) { if (typeof forwardedValue === 'string') { this.autoForwarded.delete(key); } else { value = { host: forwardedValue.remoteHost, port: forwardedValue.remotePort }; } </ins> await this.remoteExplorerService.close(value); <del> autoForwarded.delete(key); </del> removedPorts.push(value.port); } else if (this.notifiedOnly.has(key)) { this.notifiedOnly.delete(key);