jiebi/CodeConvo huggingface dataset:
Change:
const providers = this._kernelSourceActionProviders.get(viewType) ?? []; providers.push(provider); this._kernelSourceActionProviders.set(viewType, providers); <ins> this._onDidChangeSourceActions.fire({ viewType: viewType }); </ins> return toDisposable(() => { const providers = this._kernelSourceActionProviders.get(viewType) ?? [];

Discussion:
When we only have a couple of notebook controllers created for a notebook type, without any kernel detection task or kernel source commands, the "Select Another Kernel" should not show.
I have no kernels in the MRU, clicking Select Kernel brings me to this quickpick, and clicking the back button here does nothing--I think it shouldn't be shown in this scenario ! I have the Jupyter extension installed but not the Python extension installed, with the MRU picker enabled, the Select Kernel dropdown spins forever like this: !
Change:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; import {Selection} from 'vs/editor/common/core/selection'; import {MoveCarretCommand} from 'vs/editor/contrib/carretOperations/common/moveCarretCommand'; import {testCommand} from 'vs/editor/test/common/commands/commandTestUtils'; function testMoveCarretLeftCommand(lines: string[], selection: Selection, expectedLines: string[], expectedSelection: Selection): void { testCommand(lines, null, selection, (sel) => new MoveCarretCommand(sel, true), expectedLines, expectedSelection); } function testMoveCarretRightCommand(lines: string[], selection: Selection, expectedLines: string[], expectedSelection: Selection): void { testCommand(lines, null, selection, (sel) => new MoveCarretCommand(sel, false), expectedLines, expectedSelection); } suite('Editor Contrib - Move Carret Command', () => { test('move selection to left', function () { testMoveCarretLeftCommand( [ '012345' ], new Selection(1, 3, 1, 5), [ '023145' ], new Selection(1, 2, 1, 4) ); }); test('move selection to right', function () { testMoveCarretRightCommand( [ '012345' ], new Selection(1, 3, 1, 5), [ '014235' ], new Selection(1, 4, 1, 6) ); }); test('move selection to left - from first column - no change', function () { testMoveCarretLeftCommand( [ '012345' ], new Selection(1, 1, 1, 1), [ '012345' ], new Selection(1, 1, 1, 1) ); }); test('move selection to right - from last column - no change', function () { testMoveCarretRightCommand( [ '012345' ], new Selection(1, 5, 1, 7), [ '012345' ], new Selection(1, 5, 1, 7) ); }); }); </ins>  No newline at end of file

Discussion:
Atom 1.8 will introduce two new commands to move text selections left and right. A description of the feature is available in It would be great to have these commands on VSCode. !
Thanks for bringing this feature to our attention fyi
That looks so cool
Could we use the <kbdAlt</kbd+<kbd←</kbd(respectively <kbdAlt</kbd+<kbd→</kbd) as the keyboard shortcut? That would match perfectly the actions to move lines up or down.
I think <kbdcontrol</kbd+ <kbdcmd</kbd+ <kbd←/→</kbdis better(Atom 1.8). <kbdAlt</kbd+ <kbd←/→</kbdis to move the cursor around the word.
Change:
} async getCommitCount(range: string): Promise<{ ahead: number; behind: number }> { <del> const result = await this.exec(['rev-list', '--count', '--left-right', range]); </del> <ins> const args = ['rev-list', '--count', '--left-right', range]; if (isWindows) { args.splice(0, 0, '-c', 'core.longpaths=true'); } const result = await this.exec(args); </ins> const [ahead, behind] = result.stdout.trim().split('t'); return { ahead: Number(ahead) || 0, behind: Number(behind) || 0 };

Discussion:
Type: <bBug</bI simply switched to a branch, perhaps with a rather long name. On this branch, the source control tree doesn't open and remains in a collapsed state. VS Code version: Code 1.85.1 (, 2023-12-13T09:49:37.021Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (26)</summaryExtensionVersion ------ vscode-nginx-conf0.3.2 path-intellisense2.8.5 vscode-markdownlint0.53.0 vscode-eslint2.4.2 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-nginx-conf-hint0.3.0 react-component1.1.0 svg1.5.3 vscode-styled-components1.7.0 vscode-docker1.28.0 csdevkit1.1.16 csharp2.14.8 vscode-dotnet-runtime2.0.0 vscodeintellicode-csharp0.1.26 vscode-kubernetes-tools1.3.15 remote-containers0.327.0 remote-wsl0.81.8 powershell2023.8.0 nginx-formatter0.0.13 vscode-yaml1.14.0 vscode-nginx0.6.0 vscode-asciidoc0.0.3 vscode-styled-components1.7.8 vscode-nginx0.7.2 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
are you able to reproduce the issue with the latest VS Code Insiders release?
It can still be reproduced withe latest VS Code Insiders Release. I attach a film. My branch name: bugfix-CAR-5045-loading-compositions-component-order-messed-up-when-selecting-lumped-from !
thanks for the recording. Could you also please share the contents of the git output window which you can access by invoking the "Git: Show Git Output" command from the command palette. Thanks!

Also, can you still reproduce the issue if you set the following settings to : scm.showIncomingChanges scm.showOutgoingChanges
2024-01-08 11:34:18.008 [info] fatal: failed to stat 'refs/heads/bugfix-CAR-5045-loading-compositions-component-order-messed-up-when-selecting-lumped-': Filename too long
what version of VS Code are you using? Are you using the latest VS Code Insiders release?
Version: 1.86.0-insider (user setup) Commit: Date: 2024-01-08T05:36:56.355Z Electron: 27.1.3 ElectronBuildId: Chromium: 118.0.5993.159 18.17.1 V8: 11.8.172.18-electron.0 OS: Windows_NT x64 10.0.
are you saying that you are still able to reproduce this issue with the latest VS Code Insiders release? Thanks!
Duplicate of
Change:
let targetIsLineNumbers = (t.type === editorCommon.MouseTargetType.GUTTER_LINE_NUMBERS); let selectOnLineNumbers = this._context.configuration.editor.viewInfo.selectOnLineNumbers; let targetIsViewZone = (t.type === editorCommon.MouseTargetType.CONTENT_VIEW_ZONE || t.type === editorCommon.MouseTargetType.GUTTER_VIEW_ZONE); <ins> let targetIsWidget = (t.type === editorCommon.MouseTargetType.CONTENT_WIDGET); </ins> let shouldHandle = e.leftButton; if (platform.isMacintosh && e.ctrlKey) { shouldHandle = false; } <del> if (shouldHandle && (targetIsContent || (targetIsLineNumbers && selectOnLineNumbers))) { </del> <ins> var focus = () => { </ins> if (browser.isIE11orEarlier) { // IE does not want to focus when coming in from the browser's address bar if ((<any>e.browserEvent).fromElement) {

Discussion:
VSCode Version: Version 1.3.0-insider (1.3.0-insider) OS Version: OS X El Capitan 10.11.5 Steps to Reproduce: on the non-link area of a code lens line that nothing at all happens Would really like it to at a minimum to focus the editor (if not already focused), but we really love it if it move the cursor to the previous line. I find myself VERY often clicking on that area to start typing above it and nothing happens.
I'm assuming (maybe) that this wouldn't be a difficult change -- so if someone had the time to point me in the vague direction, I would be happy to attempt to open a PR for this. :)
PR welcome! :) It is in I would extract the code that does the focus: to a closure called inside the method. Then, at you can call and then : The reason focusing is complicated is because IE has some weirdness around redirecting focus when coming from the URL bar and doing a mouse down. And the already is a good indicator that the view zone does not want to handle mouse events.
Change:
import { IChatEditorOptions } from '../chatEditor.js'; import { ChatEditorInput } from '../chatEditorInput.js'; import { ChatViewPane } from '../chatViewPane.js'; <del> import { CONTEXT_CHAT_ENABLED, CONTEXT_CHAT_INPUT_CURSOR_AT_TOP, CONTEXT_IN_CHAT_INPUT, CONTEXT_IN_CHAT_SESSION } from '../../common/chatContextKeys.js'; </del> <ins> import { CONTEXT_CHAT_ENABLED, CONTEXT_CHAT_INPUT_CURSOR_AT_TOP, CONTEXT_IN_CHAT_INPUT, CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_QUICK_CHAT } from '../../common/chatContextKeys.js'; </ins> import { IChatDetail, IChatService } from '../../common/chatService.js'; import { IChatRequestViewModel, IChatResponseViewModel, isRequestVM } from '../../common/chatViewModel.js'; import { IChatWidgetHistoryService } from '../../common/chatWidgetHistoryService.js';

Discussion:
uses quick chat and has found that going between the input and the response is cumbersome because of our underlying list structure. This is in particular an issue because we now have many hyperlinked tab stops. ! We should provide a way to go between the input and the focused response. AFAICT, there is not a way to do this. Pressing seems to focus the input (unexpectedly), but there's no way to get back to the response. Thoughts?
Makes sense. Probably just need to handle the keybindings better
these probably just need logic for QC
Tyler figured out that there is a way to do this, but it's in the reverse direction from what one might expect based on tab order. Use to focus the input and to focus the last response.
Talked to JooYoung and it's fine to have these reversed, we'll want to be sure that using doesn't still focus the input box.
working afaict - and for response -input and vice versa, tab works fine as well
Change:
}; const layoutRecentList = () => { <del> if (this.container.classList.contains('noWalkthroughs') && videoList?.itemCount === 0) { </del> <ins> if (this.container.classList.contains('noWalkthroughs') && this.container.classList.contains('noVideos')) { </ins> recentList.setLimit(10); reset(leftColumn, startList.getDomElement()); reset(rightColumn, recentList.getDomElement());

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.87.0 OS Version: Linux x64 6.5.13-7-MANJARO Steps to Reproduce: the welcome page. all the walkthough suggestions. a lot of empty space on the right: ! Normally after closing all walkthroughs the "recent" list moves to the second column, to have a more balanced layout. This was broken a few versions ago, then fixed, and now it's broken again.
same here, it was discussed for example in
Looks the same to me, is that right? <img width="1218" alt="image" src=""
Change:
preexec() { PS1="$PRIOR_PROMPT" <ins> if [ -n "$RPROMPT" ]; then RPROMPT="$PRIOR_RPROMPT" fi </ins> IN_COMMAND_EXECUTION="1" command_output_start }

Discussion:
Setup a right prompt in fish/zsh and make sure the command detected is accurate.
zsh uses for this, perhaps we should have a generic ignored ranges mechanism and combine this with the line continuation solution?
Change:
if (!(this.options.mergeViewWithContainerWhenSingleView && this.paneItems.length === 1)) { return false; } <del> if (this.paneItems[0].pane.titleDescription) { // Don't merge a view with a titleDescription. See #166000 return false; } </del> if (!this.areExtensionsReady) { if (this.visibleViewsCountFromCache === undefined) { return this.paneItems[0].pane.isExpanded();

Discussion:
move timeline view into panel there are double headers and double actions <img width="1500" alt="Screenshot 2024-06-10 at 11 41 38" src=""
This comes from my PR which you recently approved. Pinging too.
Let's revert
Can we agree another way of having titleDescription visible then? Pinging re
I'll take a look at this during endgame or debt week
Change:
await Promises.settled(toUpdate.map(e => this.install(e, e.local?.preRelease ? { installPreReleaseVersion: true } : undefined))); } <ins> private async syncPinnedBuiltinExtensions(): Promise<void> { const infos: IExtensionInfo[] = []; for (const installed of this.local) { if (installed.isBuiltin && installed.pinned && installed.local?.identifier.uuid) { infos.push({ ...installed.identifier, version: installed.version }); } } if (infos.length) { const galleryExtensions = await this.galleryService.getExtensions(infos, CancellationToken.None); if (galleryExtensions.length) { await this.syncInstalledExtensionsWithGallery(galleryExtensions); } } } </ins> private autoUpdateExtensions(): Promise<any> { if (!this.isAutoUpdateEnabled()) { return Promise.resolve();

Discussion:
extension details page for GitHub Repositories extension in :bug: the marketplace and repository links aren't shown !
Change:
else { // Name <del> const name = dotSegments[0]; // file.txt => "file", .dockerfile => "", file.some.txt => "file" </del> <ins> const name = dotSegments.join('.'); // get the whole name </ins> if (name) { classes.push(`${cssEscape(name.toLowerCase())}-name-file-icon`); }

Discussion:
VSCode Version: version 1.8.1 OS Version: Windows 10 Steps to Reproduce: an icon theme. a filename that has no extension. e.g. license a file called and it will work as expected a file called and instead of the expected icon, you will see the icon. It seems that filename associations are created by taking the extension of the file as a separated style, thus providing side-effects with without extension. In my opinion, filenames shouldn't have to take into account the extension as a separate css class. The whole file name should be css parsed and used as a class name instead. This would avoid the described issue. See
Another effect is that filenames starting with a dot, like '.gitignore' are being treated as file extensions. This usually works but I have detected what seems to be another bug. In the docs it says: For what I've seen this is not the case and takes precedence in front a : ! As you can see in the image, is being matched as a extension and if a language id is provided (json in this case), the language id prevails against what the docs claims.
I've submitted a PR for this
Change:
"version": "0.0.1", "description": "Dependencies shared by all extensions", "dependencies": { <del> "typescript": "3.4.1" </del> <ins> "typescript": "3.4.3" </ins> }, "scripts": { "postinstall": "node ./postinstall"

Discussion:
For This minor release of TypeScript will invalidate the automatic types cache so that upstream fixes to the styled components typings are downloaded
PR has been merged -closing.
Change:
private modelProvider: () => ITreeModel<T, TFilterData, TRef>, onDidChangeCollapseState: Event<ICollapseStateChangeEvent<T, TFilterData>>, private activeNodes: Collection<ITreeNode<T, TFilterData>>, <ins> private renderedIndentGuides: SetMap<ITreeNode<T, TFilterData>, HTMLDivElement>, </ins> options: ITreeRendererOptions = {} ) { this.templateId = renderer.templateId;

Discussion:
Type: <bBug</b! VS Code version: Code - Insiders 1.72.0-insider (, 2022-09-23T05:17:37.024Z) OS version: Windows_NT x64 10.0. Modes: Sandboxed: Yes /assign <!-- generated by issue reporter --
/assign
Completely agree on this. Tree ident guide highlights are pretty awful throughout the hole app, except the editor itself because of the color lines.
Great find!
Change:
if (!this.localUserConfiguration.hasTasksLoaded) { // Reload local user configuration again to load user tasks <del> this._register(runWhenIdle(() => this.reloadLocalUserConfiguration())); </del> <ins> this._register(runWhenIdle(() => this.reloadLocalUserConfiguration(false, this._configuration.localUserConfiguration))); </ins> } }

Discussion:
apply the patch that logs fs calls which is included below run open a folder and open a single css file don't modify it (i.e. avoid hot exit) and reload the window <details<summaryPatch</summary</detailsObserve the following fs calls that occur before the first editor rendering: IMHO the following fs calls should be postponed: [ ] [ ] [ ] [x] I also noticed that we read the following files twice: [ ]
I have no clue what we use install source for, but lots of digging reveals this commit:
Updating the list - is only read once.
is read twice because First time during initialising configuration without user tasks User tasks is read later when there is an idle time - by reloading user configuration - during which settings and tasks files are read.
Install source is a common telemetry property. It can be set after installing VS Code. It came as an ask from Anaconda, to know how many installations came from them. We decided to go with creating a new file rather than updating existing files, to avoid scenarios where we'd break important files (eg or ). I don't have great ideas to work around this other than refactoring the code until the first telemetry event gets submitted, which is still pretty early. Will ask around to learn whether this common telemetry property is still in use.
is gone!
Tasks and Launches are part of Config and they are accessed sync from config service. In order to prevent reading these files during start up we should loading them until they are needed. (probably workbench restored phase) an assertion to make sure no component is reading them until then
This needs considerable refactoring and I do not think it is worth a change for the gain given that these files are resolved in parallel. Hence marking this as no fix.
Change:
} else if (runState?.state !== NotebookCellExecutionState.Executing && typeof this._showedExecutingStateTime === 'number') { const timeUntilMin = ExecutionStateCellStatusBarItem.MIN_SPINNER_TIME - (Date.now() - this._showedExecutingStateTime); if (timeUntilMin > 0) { <del> if (!this._clearExecutingStateTimer) { this._clearExecutingStateTimer = disposableTimeout(() => { </del> <ins> if (!this._clearExecutingStateTimer.value) { this._clearExecutingStateTimer.value = disposableTimeout(() => { </ins> this._showedExecutingStateTime = undefined; <del> this._clearExecutingStateTimer = undefined; </del> <ins> this._clearExecutingStateTimer.clear(); </ins> this._update(); }, timeUntilMin); }

Discussion:
[X] Notebooks (.ipynb files) [ ] Interactive Window and/or Cell Scripts (.py files with #%% markers) When a cell successfully executes, I get a little green check mark to indicate success. Sometimes these marks keep getting instead of just re-using the first one. So I end up with 15+ checks across the bottom of my cell. This looks weird. ! Version: 1.70.1 (user setup) Commit: Date: 2022-08-10T06:08:33.642Z Electron: 18.3.5 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: WindowsNT x64 10.0. 2022.7.110 (12 Aug 2022) No response No response No response_ Local
Thanks for filing this. Have not seen something like this before. I'll look at reproing it. Anything in particular that triggers this behavior? Or just something that shows up to you relatively often?
I've just started noticing it recently. I have not recognized a pattern yet. But I do frequently have exceptions, so maybe having something around it fail and then succeed gets it in a weird state? I'll try to pay more attention to when it starts happening.
I also restart my kernel a lot, which may have something to do with it too.
Hm, we had these issues in the past, but I thought all the bugs were squashed Edited - actually, I was just able to repro this by scrolling around while executing a cell. Not a recent regression
Change:
<del> <?xml version='1.0' standalone='no' ?> <svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='10px' height='10px'> <style> circle { animation: ball 0.6s linear infinite; } circle:nth-child(2) { animation-delay: 0.075s; } circle:nth-child(3) { animation-delay: 0.15s; } circle:nth-child(4) { animation-delay: 0.225s; } circle:nth-child(5) { animation-delay: 0.3s; } circle:nth-child(6) { animation-delay: 0.375s; } circle:nth-child(7) { animation-delay: 0.45s; } circle:nth-child(8) { animation-delay: 0.525s; } @keyframes ball { from { opacity: 1; } to { opacity: 0.3; } } </style> <g style="fill:white;"> <circle cx='5' cy='1' r='1' style='opacity:0.3;' /> <circle cx='7.8284' cy='2.1716' r='1' style='opacity:0.3;' /> <circle cx='9' cy='5' r='1' style='opacity:0.3;' /> <circle cx='7.8284' cy='7.8284' r='1' style='opacity:0.3;' /> <circle cx='5' cy='9' r='1' style='opacity:0.3;' /> <circle cx='2.1716' cy='7.8284' r='1' style='opacity:0.3;' /> <circle cx='1' cy='5' r='1' style='opacity:0.3;' /> <circle cx='2.1716' cy='2.1716' r='1' style='opacity:0.3;' /> </g> </svg> </del>

Discussion:
In light themes the status bar text changes from white to black, but progress spinners do not so they're hard to see: 
This icon is probably not themable yet. E.g. for the status bar feedback smiley we use trick to allow to change the color of it (). Depending on the outcome of we might move this into the notification area though.
fyi, the fix is to use a font for the icon (in this case our octicons). I found the sync icon fitting because we already use it for SCM sync: ! Alternatively we could use this animation: !
Change:
index: number; } <ins> interface IRenderedOutput { element: HTMLElement; renderResult: IRenderOutput; } </ins> export class CodeCell extends Disposable { private outputResizeListeners = new Map<IProcessedOutput, DisposableStore>(); <del> private outputElements = new Map<IProcessedOutput, HTMLElement>(); </del> <ins> private outputElements = new Map<IProcessedOutput, IRenderedOutput>(); </ins> constructor( private notebookEditor: INotebookEditor, private viewCell: CodeCellViewModel,

Discussion:
Notice the cell goes beyond the right margin. Seems to happen for all cells
is it related to the indentation change?
I don't think there's an issue here anymore? I did push a change to ensure that a line of text with no whitespace will break and not overflow. But I don't see any other issues with overflowing horizontally. I do see plain text outputs overflowing if I resize the editor to be narrower...