jiebi/CodeConvo huggingface dataset:
Change:
get activeDebugConsole(): vscode.DebugConsole { return this._activeDebugConsole.value; } private _breakpoints: Map<string, vscode.Breakpoint>; <del> private _breakpointEventsActive: boolean; </del> private readonly _onDidChangeBreakpoints: Emitter<vscode.BreakpointsChangeEvent>;

Discussion:
Set some breakpoints Access from an extension- it's an empty array Try again - it's full Seems that we don't sync breakpoint into to the EH until the first call to one of the breakpoint properties do you have some context on this? It's a little confusing because I wouldn't expect sending breakpoint infos to be expensive, and I would expect to be able to access the breakpoints array immediately.
I do not have more context. I believe is the author of this code. I like your suggestion that we change this and actively sync the breakpoints into the EH (since it should not be expensive).
The observed behavior is by design: we want to avoid that all breakpoints get transferred to all active extensions all the time. But the API doc doesn't explain this...
Thanks is the worry that it's too much data/too expensive? What's the solution for extensions that need to access the list of breakpoints?
yes, potentially too much data and traffic for all extensions. What's the solution for extensions that need to access the list of breakpoints? adding a to the function of an extension will register the extension to receive live updates for . With this will always reflect the current set of breakpoints.
Thanks, I don't really understand that though, it doesn't seem like that much traffic/data, compared to something like the full text of open documents. If it's going to work this way, I should document it in But I might try doing some testing to remove this restriction because I think it's unexpected.
Verification steps: Create an extension that can log the value of Set a breakpoint in any file Then trigger your extension to check the length of the breakpoints array It should log the correct value on the first try- previously it would have been 0 on the first access, then the correct value afterwards
Change:
// Resources (Tree) const children: TreeElement[] = []; for (const node of inputOrElement.resourceTree.root.children) { <del> children.push(node.element ?? node); </del> <ins> children.push(node.element && node.childrenCount === 0 ? node.element : node); </ins> } return children;

Discussion:
Type: <bBug</bObserved with a custom extension on a Clearcase SCM, but can be easily reproduced with SVN too, probably with any SCM that treats directories as versionable entities. How to reproduce: the SVN extension (I wish we could skip this step, but git does not version directories, so we can't reproduce with that) a svn repository a dir a file or more in that dir add dir svn repo in vscode, inspect the SCM view entities in List mode to tree mode Expected result: both the dir and the file are shown, preferably with the right badge; Actual result: dir children are omitted; Sample List mode SCM view: ! Sample Tree mode SCM view (same content of the repo): ! This is most likely a recent regression (possibly starting today's Insiders build, but I'm not 100% sure). VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-10T05:35:29.445Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 4.18.0-372.19.1.el86.x8664 Remote OS version: Linux x64 4.4.0-64-generic <details<summarySystem Info</summary </details<details<summaryExtensions (4)</summaryExtensionVersion ------ remote-ssh0.108. remote-explorer0.5. rewrap17.8.0 svn-scm2.17.0 </details<!-- generated by issue reporter --
cc - Sorry for the ping, is it possible this was caused by the recent sticky scroll addition (great feature, btw)?
may be relevant so pinging
thank you very much for reporting this issue and will update the issue with my findings.
the fix for this will be included in Friday's Insiders release. I would really appreciate if you would download that tomorrow and confirm that the issue is resolved. Thanks again, and apologies for the inconveniences.
Hi, I saw the pending PR and that it just got merged, I will definitely test and confirm this asap. Thank you!
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected.

If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
/verified
Change:
this.pendingDiagnostics = new PendingDiagnostics(pathNormalizer, { onCaseInsensitiveFileSystem }); this.synchronizer = new BufferSynchronizer(client, pathNormalizer, onCaseInsensitiveFileSystem); <ins> this._tabResources = this._register(new TabResourceTracker(pathNormalizer, { onCaseInsensitiveFileSystem })); this._register(this._tabResources.onDidChange(e => { if (this.client.configuration.enableProjectDiagnostics) { return; } for (const closed of e.closed) { const syncedBuffer = this.syncedBuffers.get(closed); if (syncedBuffer) { this.pendingDiagnostics.delete(closed); this.pendingGetErr?.files.delete(closed); } } for (const opened of e.opened) { const syncedBuffer = this.syncedBuffers.get(opened); if (syncedBuffer) { this.requestDiagnostic(syncedBuffer); } } })); </ins> this.updateConfiguration(); vscode.workspace.onDidChangeConfiguration(this.updateConfiguration, this, this._disposables); }

Discussion:
Issue Type: <bBug</bMoved off Steps to reproduce: code that generates a linting warning (in this case, should should generate an unused variable warning) the file, and then close it before the diagnostics appear Expected behavior: Diagnostics are not shown when the file is closed. Actual behavior: Diagnostics are sometimes shown when the file is closed, and will not disappear until I reload the window. Please note that I couldn't reproduce this behaviour reliably. Action gif: ! VS Code version: Code 1.46.1 (, 2020-06-17T21:17:14.222Z) OS version: Darwin x64 19.5.0 <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ bracket-pair-colorizer-20.2.0 gitlens10.2.2 prettier-vscode5.1.3 vscode-pull-request-github0.17.0 vscode-docker1.3.1 python2020.6. vscode-pylance2020.6.1 remote-containers0.122.1 remote-ssh0.51.0 remote-ssh-edit0.51.0 remote-wsl0.44.4 vscode-remote-extensionpack0.20.0 azure-account0.8.11 vscode-typescript-tslint-plugin1.2.3 vscode-icons10.1.1 (3 theme extensions excluded) </details<!-- generated by issue reporter --
Change:
public static INSTANCE = new EditorRenderingCoordinator(); private _coordinatedRenderings: ICoordinatedRendering[] = []; <del> private _animationFrameRunner: IDisposable | null = null; </del> <ins> private _animationFrameRunners = new Map<CodeWindow, IDisposable>(); </ins> private constructor() { }

Discussion:
Repro: an editor to a new window (or as many as you want) the original window that still contains the editor that all windows with the copied editor have input lag ! Version: 1.85.0-insider (user setup) Commit: Date: 2023-12-01T19:00:37.339Z Electron: 25.9.6 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0.
A regression from
Change:
<ins> # --------------------------------------------------------------------------------------------- #   Copyright (c) Microsoft Corporation. All rights reserved. #   Licensed under the MIT License. See License.txt in the project root for license information. # --------------------------------------------------------------------------------------------- autoload -Uz add-zsh-hook IN_COMMAND_EXECUTION="1" LAST_HISTORY_ID=0 prompt_start() { printf "033]633;A007" } prompt_end() { printf "033]633;B007" } update_cwd() { printf "033]633;P;Cwd=%s007" "$PWD" } command_output_start() { printf "033]633;C007" } continuation_start() { printf "033]633;F007" } continuation_end() { printf "033]633;G007" } command_complete() { local HISTORY_ID=$(history | tail -n1 | awk '{print $1;}') if [[ "$HISTORY_ID" == "$LAST_HISTORY_ID" ]]; then printf "033]633;D007" else printf "033]633;D;%s007" "$STATUS" LAST_HISTORY_ID=$HISTORY_ID fi update_cwd } update_prompt() { PRIOR_PROMPT="$PS1" IN_COMMAND_EXECUTION="" PS1="$(prompt_start)$PREFIX$PS1$(prompt_end)" PS2="$(continuation_start)$PS2$(continuation_end)" } precmd() { local STATUS="$?" if [ -z "${IN_COMMAND_EXECUTION-}" ]; then # not in command execution command_output_start fi command_complete "$STATUS" # in command execution if [ -n "$IN_COMMAND_EXECUTION" ]; then # non null update_prompt fi } preexec() { PS1="$PRIOR_PROMPT" IN_COMMAND_EXECUTION="1" command_output_start } add-zsh-hook precmd precmd add-zsh-hook preexec preexec # Show the welcome message if [ -z "${VSCODE_SHELL_HIDE_WELCOME-}" ]; then echo "033[1;32mShell integration activated033[0m" else VSCODE_SHELL_HIDE_WELCOME="" fi </ins>

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/No 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.65.0-insider OS Version: MacOS12.2.2 Steps to Reproduce: with setting new terminal <img width="1440" alt="image" src="https://user-"
Thanks, we're aware of this issue and have been working toward its resolution
Change:
constructor( @ITelemetryService telemetryService: ITelemetryService, @IConfigurationService private configurationService: IConfigurationService, <ins> @IContextMenuService private contextMenuService: IContextMenuService, </ins> @IInstantiationService private instantiationService: IInstantiationService, <ins> @IKeybindingService private keybindingService: IKeybindingService, </ins> @IWorkspaceContextService private contextService: IWorkspaceContextService, @ITerminalService private terminalService: ITerminalService, @IThemeService private themeService: IThemeService,

Discussion:
Currently events are handled in each terminal instance, this means that event handlers go off for each terminal instances for an event on the terminal panel.
Change:
export class UpdateAction extends AbstractUpdateAction { constructor( <ins> private readonly verbose: boolean, </ins> @IExtensionsWorkbenchService override readonly extensionsWorkbenchService: IExtensionsWorkbenchService, @IInstantiationService protected readonly instantiationService: IInstantiationService, ) { super(`extensions.update`, localize('update', "Update"), extensionsWorkbenchService); } <ins> override update(): void { super.update(); if (this.extension) { this.label = this.verbose ? localize('update to', "Update to v{0}", this.extension.latestVersion) : localize('update', "Update"); } } </ins> override async run(): Promise<any> { if (!this.extension) { return;

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Hello, I searched for an existing ticket with , but didn't find anything related. <!-- Describe the feature you'd like. --Prior to v1.72.0, the extension sidebar showed which version an extension will be updated to. And when hovering over the extension in the sidebar, or opening the extension in a tab, you could see the currently installed one. That way you could see for example if an update is a major, minor, or patch update, and depending on that dig into the release notes or not. Further in the past, IIRC, the extension sidebar even showed both, installed and target version, which was even more convenient. Now with v1.72.0, I don't see anywhere the target version of an extension update. Many extensions don't keep a proper changelog, so that's not a reliable place to check. Here's an example for vscode-icons, a very popular extension with 12 million installs: ! Only when going to the Marketplace webpage () we see the target version: ! =Feature request: Please make the target version for extension updates visible inside of VS Code again.
Latest version is now shown in the hover. Update button in the extension editor shows the version.
Change:
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IThemeService } from 'vs/platform/theme/common/themeService'; import { ThemeIcon } from 'vs/base/common/themables'; <ins> import { ICustomHover, setupCustomHover } from 'vs/base/browser/ui/iconLabel/iconLabelHover'; import { getDefaultHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegate'; </ins> export class CodiconActionViewItem extends MenuEntryActionViewItem {

Discussion:
open a notebook hover over its and actions there is the custom hover but on further move there is also the native hover (maybe because these actions combine text and icon?)
Change:
kind?: QuickPickItemKind; /** <ins> * The icon path or {@link ThemeIcon} for the QuickPickItem. */ iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon; /** </ins> * A human-readable string which is rendered less prominent in the same line. Supports rendering of * {@link ThemeIcon theme icons} via the `$(<name>)`-syntax. *

Discussion:
Would it be possible to allow for extensions to provide icons in s? At the moment we can use via the syntax, but if we want to provide a custom icon that is more complex (perhaps we can do that be providing a font and a partial product icon theme?). With a , we can pass in an optional icon path: Could we add this to QuickPickItem too? Based on the quick open input, there is already space afforded in the UI for the icon, so it would be useful if extensions to provide one.
Related to which asks for the ability to specify filetype icons.
Proposal: It looks a bit off using squares: !
Example with circles for reference: !
For anyone curious, circles are possible by using data URIs: Example and copied here for reference:
Change:
for (const welcome of contribution.value) { const id = ViewIdentifierMap[welcome.view] ?? welcome.view; const { group, order } = parseGroupAndOrder(welcome, contribution); <ins> const enablement = ContextKeyExpr.deserialize(welcome.enablement); </ins> const disposable = viewsRegistry.registerViewWelcomeContent(id, { content: welcome.contents, when: ContextKeyExpr.deserialize(welcome.when), <ins> // supply the enablement clause for each line in case the line defines a button preconditions: welcome.contents.split('n').map((_) => enablement), </ins> group, order });

Discussion:
Below is a recording of a Control-R reload when no workspace is open and one non-builtin extension is contributing to to the Welcome view of Explorer. ! Observe how we start with Explorer's usual "NO FOLDER OPEN" view. Next my extension contributes its text and buttons. Finally the built-in git extension contributes text and a button. Since built-ins get higher priority the content from my extension jumps downward, perhaps while I'm reading it or trying to click one of its actions (link, button). There's no progress indicator when the content is being fetched and assembled, and it's hard to know how long to wait before concluding that no other extensions are going to contribute. VS Code version: Code 1.49.0 (, 2020-09-10T13:22:08.892Z) OS version: Windows_NT x64 10.0.
Similarly on the Source Control view, it starts with a message saying "No source control providers registered" and stays this way long enough for me to worry that something is broken or missing. Eventually the contribution from the git extension arrives. If a progress indicator isn't , maybe at least the initial message could say something like "Please wait while we look for source control providers". Then if nothing contributes (e.g. the git extension has been disabled,) it could then display "No source control providers registered".
This will be very hard to achieve. The problem here isn't actually the extension point, for which we could definitely add a progress indicator, but the activation of the git extension. That git section won't appear until the git extension is activated and all the potential repo locations have been probed... We simply can't add a progress indicator for that in the core unless we add some more API.
On this, we could potentially add a message.
That might help.
Closing this until we get actual user feedback that it's needed, sorry
Change:
registerTextMime({ id: 'docker', filepattern: 'dockerfile*', mime: 'text/looser' }); guess = guessMimeTypes('dockerfile'); assert.deepEqual(guess, ['text/winner', 'text/plain']); <ins> registerTextMime({ id: 'azure-looser', mime: 'text/azure-looser', firstline: /azure/ }); registerTextMime({ id: 'azure-winner', mime: 'text/azure-winner', firstline: /azure/ }); guess = guessMimeTypes('azure', 'azure'); assert.deepEqual(guess, ['text/azure-winner', 'text/plain']); </ins> }); test('Specificity priority 1', () => {

Discussion:
This is because unlike the other algorithm for path or file name, we actually iterate over the registered languages in order and not in reverse order. As such, an extension cannot override the language mode when providing a pattern that is matched by an built in extension. I would argue that we should do the same trick and reverse the order, so that extensions have a chance. //cc
via
Change:
hasDynamicHeight(element: SettingsTreeGroupElement | SettingsTreeSettingElement | SettingsTreeNewExtensionsElement): boolean { return !(element instanceof SettingsTreeGroupElement); } <ins> setDynamicHeight(element: SettingsTreeGroupChild, height: number): void { this.heightCache.set(element, height); } </ins> } class NonCollapsibleObjectTreeModel<T> extends ObjectTreeModel<T> {

Discussion:
See the GIF directly. ! As shown above, the settings UI always scrolls automatically, so I cannot find the modification because it went away. Marking or deselecting any item may cause this issue. VS Code version: Code 1.31.0 (, 2019-02-05T22:35:56.624Z) OS version: Windows_NT x64 10.0.
Annoyed me so much. Note that it happens with dropdowns and selecting an item, and occasionally by inputting textbox and clicking to defocus it.
Having this exact problem as well. I just installed VS code and am having this problem while giving it a trial run. Sigh....
Maybe related to
This isn't what I thought it was, I have to assign to you I think the ListView renders the setting items with their default heights, then rerenders and saves the offset of the anchor element. Then it fixes the heights of the elements and maintains the offset of the anchor element. But since it measured the anchor element when the elements had default heights, the list will be shifted if the real heights were different from the default heights. Maybe an anchor element should be measured before rendering the items with default heights or something like that. I made the default heights more accurate which helps.
Why is the list re-rendered when a check box is clicked?
When the config service says something changed, we rerender everything. It seems unnecessary in this case but it's hard to tell that the change event came "from" this instance of the settings editor and also, some values can be normalized when they get back to us, and since it should be safe to rerender, I don't put a lot of effort into reducing unneeded renders. Another way to repro this, open two settings editors in two groups, change a setting in Group 1, and see the editor in Group 2 scroll. If this just can't really be fixed there are things I can do like updating the value of a rendered setting row without actually calling setChildren. But that only works for some settings, adds more complexity, etc.
It can definitely be fixed. I was just wondering why the rerender was needed. ;)
cc
Change:
this.instantiationService.createInstance(CreateNewTerminalAction, CreateNewTerminalAction.ID, CreateNewTerminalAction.PANEL_LABEL), this.instantiationService.createInstance(KillTerminalAction, KillTerminalAction.ID, KillTerminalAction.PANEL_LABEL) ]; this.actions.forEach(a => { this.toDispose.push(a); }); } return this.actions; } <ins> private getContextMenuActions(): IAction[] { if (!this.contextMenuActions) { this.contextMenuActions = [ this.instantiationService.createInstance(CreateNewTerminalAction, CreateNewTerminalAction.ID, nls.localize('createNewTerminal', "New terminal")), new Separator(), this.instantiationService.createInstance(CopyTerminalSelectionAction, CopyTerminalSelectionAction.ID, nls.localize('copy', "Copy")), this.instantiationService.createInstance(TerminalPasteAction, TerminalPasteAction.ID, nls.localize('paste', "Paste")) ]; this.contextMenuActions.forEach(a => { this.toDispose.push(a); }); } return this.contextMenuActions; } </ins> public getActionItem(action: Action): IActionItem { if (action.id === SwitchTerminalInstanceAction.ID) { return this.instantiationService.createInstance(SwitchTerminalInstanceActionItem, action);

Discussion:
Currently events are handled in each terminal instance, this means that event handlers go off for each terminal instances for an event on the terminal panel.
Change:
private selectionDetailsPane: HTMLElement; private _skipLayout: boolean = false; <del> private _sticky: boolean = true; // for dev purposes only </del> <ins> private _sticky: boolean = false; // for dev purposes only </ins> constructor(options: string[], selected: number, contextViewProvider: IContextViewProvider, styles: ISelectBoxStyles, selectBoxOptions?: ISelectBoxOptions) {

Discussion:
Issue Type: <bBug</bthe settings editor a setting that has a dropdown so that the options are displayed editors The dropdown remains open: ! Not sure if this is an issue with the select itself, or the settings editor. VS Code version: Code - Insiders 1.30.0-insider (, 2018-12-03T06:12:08.874Z) OS version: Darwin x64 18.0.0 <!-- generated by issue reporter --
Nice, for me it even jumps to the corner of the screen for some reason after switching to the editor. ! I think we will need some way to hide the list when the settings editor hides? Is there a way to force it to hide from outside currently?
Ha, I was afraid this would occur. The _sticky flag that Jackson for debugging was changed to true in a recent PR. I was going to ask if this was intentional. My Insiders was just old enough to not have this. was this left as 'true' by mistake when you're doing some mouse work for list? I will verify if this is the case and fix unless requested otherwise...
Good catch, it looks like a mistake, I'll revert it so it can get into tomorrow's build. Let me know if that's not the case
Actually looks like you are on it go ahead if you want to create a PR.
Fixed with,
- you have to merge, I'm not allowed :-(