jiebi/CodeConvo huggingface dataset:
Change:
DOM.append(this.noResultsMessage, this.clearFilterLinkContainer); <del> const clearSearchContainer = $('span.clear-search'); clearSearchContainer.textContent = ' - '; const clearSearch = DOM.append(clearSearchContainer, $('a.pointer.prominent', { tabindex: 0 }, localize('clearSearch', 'Clear Search'))); this._register(DOM.addDisposableListener(clearSearch, DOM.EventType.CLICK, (e: MouseEvent) => { DOM.EventHelper.stop(e, false); this.clearSearchResults(); })); DOM.append(this.noResultsMessage, clearSearchContainer); </del> this._register(attachStylerCallback(this.themeService, { editorForeground }, colors => { this.noResultsMessage.style.color = colors.editorForeground ? colors.editorForeground.toString() : null; }));

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --I noticed in the settings-editor that there are now duplicate clear buttons when the user searches but finds no result. <!-- Describe the feature you'd like. --I propose getting rid of the "Clear Search" text in the bottom left corner as there is now a button in the search bar that achieves the same thing but with less clutter (in my opinion). This change would make the settings-editor more consistent with the keyboard shortcuts tab as well. !
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.464 --<!-- potentialduplicatescomment --
Yeah we can probably just get rid of the text link
What about the "Clear Filters" link? Should there be an extra Clear Filters button that appears in the search bar itself, or let the link stay?
Would you mind sending me a picture of the "Clear Filters" link ? Where exactly is the link ? I will look into this.
! When you use one of the @ filters it appears.
For now I think we can let the 'Clear Filters' link stay. This issue was originally meant to get rid of the duplicates. In another PR I could add a button to the search bar that adds this , and then we could get rid of that link though, although other tabs don't have that sort of button . What do you think ?
Yeah the "Clear Filters" link is all about discoverability and I'd rather leave it
Change:
const compressedNode = this.modelProvider().getCompressedTreeNode(stickyNode.node.element); if (compressedNode.element) { <ins> if (compressedNode.element.incompressible) { break; } </ins> elements.push(...compressedNode.element.elements); } }

Discussion:
Type: <bBug</bSticky Scroll area becomes blank when I scroll through deeply nested results and cover a lot of space (I use it in Panel area). At first, I was thinking it's related to container height (as resize might hide content if height reduced) but same behavior reproducible in Side Bar as well. Steps to reproduce: for term that would produce deeply nester results e.g. in VS Code repo down to encounter deeply nested results that Sticky Scroll area becomes blank but still takes a lot of space to increase panel height, and scroll back and forth to have Sticky Scroll area properly rendered (but still relatively deeply nested) panel height to see that Sticky Scroll area becomes blank again <details<summaryErrors from DevTools console</summarynot sure if logs below are relevan as they might appear without an error from above </details<details<summaryRecording (18.5 MB) </detailsVS Code version: Code - Insiders 1.86.0-insider (, 2024-01-17T07:04:28.837Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </detailsExtensions: none <!-- generated by issue reporter --
just to double label check should be with or ? My expectation was later.
After rereading your issue, it appears this may be related to the tree sticky scroll instead. Pinging about it.
Thanks for reporting this Newly we started to compress nodes when the maximum number of sticky nodes was reached. The bug was caused due to trying to compress nodes which are not compressible (for example files can't be compressed with folders currently). I fixed it in
Works as expected now. Thanks!
Change:
@IInstantiationService instantiationService: IInstantiationService, ) { super(); <del> this._hoverDelegate = this._register(instantiationService.createInstance(WorkbenchHoverDelegate, 'mouse', false, { persistence: undefined /* use default persistence behaviour */ })); </del> <ins> this._hoverDelegate = this._register(instantiationService.createInstance(WorkbenchHoverDelegate, 'mouse', false, {})); </ins> this._register(this.themeService.onDidFileIconThemeChange(() => this.rerender())); this._register(this.themeService.onDidColorThemeChange(() => this.rerender())); this._register(checkboxStateHandler.onDidChangeCheckboxState(items => {

Discussion:
a status bar contribution with an actionable tooltip, like Rust Analyzer's contribution in a repo with Rust code (like vscode) or Joh's PR pinger over the status bar entry and try to move your mouse to interact with it disappears !
This seems like a recent regression to me because for the window zoom status entry this used to work recently. can you see if its maybe something you changed?
Unless it's explicitly indicated as not hoverable any hover with markdown will allow it. I do notice is set to true in the new workbench hover delegate which is surprising to me, not sure why it wouldn't be using the default which is dynamically selected: has been making a lot of hover changes recently.
please cc me on workbench hover-related PRs so I can track changes going in. It's good you're taking some ownership but I just want to make sure I'm kept up to date
So this is a bug. I noticed it a while ago and just got used to pressing and keeping pressed (using Windows) to be able to click on things inside the hover.
some hovers intentionally cannot be moused over so I'm glad you discovered alt
Initially the new was introduced to have a simple way to replace the native hover. Due to this it made sense to set to make sure the behaviour is similar to the native one. It afterwards turned out that using the was a nice way to clean up some of the existing custom hover code such as the one in the status bar. It makes sense to switch back to the default behaviour for .
Change:
})); } <del> private _onModelDecorationsChanged(): void { if (this._widget.position) { // The decorations have changed and the hover is visible, // we need to recompute the displayed text this._hoverOperation.cancel(); if (!this._widget.isColorPickerVisible) { // TODO@Michel ensure that displayed text for other decorations is computed even if color picker is in place this._hoverOperation.start(HoverStartMode.Delayed); } } } </del> /** * Returns true if the hover shows now or will show. */

Discussion:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.
Change:
* Returns all authentication sessions available from {@link getAuthenticationProviders}. */ private async getAllSessions() { <del> const options: ExistingSession[] = []; </del> const authenticationProviders = await this.getAuthenticationProviders(); <ins> const accounts = new Map<string, ExistingSession>(); let currentSession: ExistingSession | undefined; </ins> for (const provider of authenticationProviders) { const sessions = await this.authenticationService.getSessions(provider.id, provider.scopes); for (const session of sessions) { <del> options.push({ </del> <ins> const item = { </ins> label: session.account.label, description: this.authenticationService.getLabel(provider.id), session: { ...session, providerId: provider.id } <del> }); </del> <ins> }; accounts.set(item.session.account.id, item); if (this.existingSessionId === session.id) { currentSession = item; } </ins> } } <del> return options; </del> <ins> if (currentSession !== undefined) { accounts.set(currentSession.session.account.id, currentSession); } return [...accounts.values()]; </ins> } /**

Discussion:
<!-- Do Not Delete This! bugreporttemplate --I think this is because I am maybe logged in to multiple Microsoft Accounts (my personal & work). Best way to do this is to log in with both accounts in my . ! Or maybe it's because I have logged in to this one account with multiple sessions (different scope lists) like logging in to Settings Sync & The To Do extension.
Hmm is this a Microsoft auth quirk where there can be multiple sessions with the same scopes?
technically any AuthProvider can have that behavior: but yes right now Microsoft supports it and GitHub doesn't. At some point GitHub will though.
<img width="660" alt="image" src="https://user-"On my laptop now... I think this could be a bug in the auth provider. But even still, I think you should dedupe sessions with duplicate accountIds.
Does the same thing happen when you sign in with settings sync?
! nope
Ah that's because settings sync dedupes
Change:
return this._cache; } <del> private consolidate(): void { this._cache = this._folderSettingsModelParser.configurationModel.merge(...this._standAloneConfigurations); </del> <ins> private consolidate(settingsConfiguration?: ConfigurationModel): void { this._cache = (settingsConfiguration ?? this._folderSettingsModelParser.configurationModel).merge(...this._standAloneConfigurations); </ins> } private handleFileChangesEvent(event: FileChangesEvent): boolean {

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:
import { extractFileListData } from 'vs/platform/dnd/browser/dnd'; import { Iterable } from 'vs/base/common/iterator'; import { WebFileSystemAccess } from 'vs/platform/files/browser/webFileSystemAccess'; <ins> import { EmbeddedCodeEditorWidget } from 'vs/editor/browser/widget/embeddedCodeEditorWidget'; </ins> export class FileDialogService extends AbstractFileDialogService implements IFileDialogService {

Discussion:
We use in some places to get at the currently focused code editor. To my surprise, this method seems to be returning that are used for example as Copilot chat input. I would argue that in most if not all our usages, we only care about text editors that contain contents of a document, but not input fields like that. Can we add some kind of filter logic or a way for the caller to know if the returned editor is used as input field?
I don't know exactly what uses, but can be used to find out if this editor instance is an "input field".
Got it, I am not sure how big of an issue this is today for everyone using the API, but I will check for my usages.
Yeah, that's what I use too
Change:
this._chatWidget?.value.inlineChatWidget.updateChatMessage({ message: new MarkdownString(responseContent), requestId: this._currentRequest.id, providerId: 'terminal' }, false, containsCode); this._responseContainsCodeBlockContextKey.set(containsCode); this._chatWidget?.value.inlineChatWidget.updateToolbar(true); <del> this._messages.fire(Message.ACCEPT_INPUT); </del> } const supportIssueReporting = this._currentRequest?.response?.agent?.metadata?.supportIssueReporting; if (supportIssueReporting !== undefined) {

Discussion:
To support voice in terminal, there is an adapter: I think it works great for the most part, but I noticed does not immediately fire, only when the response has been generated. The visible impact is that the animation only stops when the response has landed, as opposed to finishing right away: !
Change:
this.os = OS; this.userHome = pathService.defaultUriScheme === Schemas.file ? this.pathService.userHome({ preferLocal: true }) : undefined; <del> const memento = this.storedFormattersMemento = new Memento('cachedResourceFormatters', storageService); </del> <ins> const memento = this.storedFormattersMemento = new Memento('cachedResourceLabelFormatters', storageService); </ins> this.storedFormatters = memento.getMemento(StorageScope.GLOBAL, StorageTarget.MACHINE); this.formatters = this.storedFormatters?.formatters || [];

Discussion:
Repro: a file in vscode, example copy relative path command copy path of active file command We should add some unit tests for this or improve existing ones to catch this case.
Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our . Please take the time to review these and update the issue. Happy Coding!
Latest insiders, macOS, any workspaces. I use these commands many times per day and it's a huge pain to swap the separators every time. Version: 1.68.0-insider Commit: Date: 2022-06-01T05:17:25.414Z Electron: 17.4.6 Chromium: 98.0.4758.141 16.13.0 V8: 9.8.177.13-electron.0 OS: Darwin x64 21.5.0
Can you try to run where is an empty folder? This will ensure Code is starting with a fresh data directory, e.g. no specific settings and without any extensions running.
Still happens with
I'm looking into it now to make sure it's not on my end
I was asking because there is a setting, but it only applies to copying relative paths.
I tried clearing user data dir again and it worked, not sure what happened before, might not have made it into the clipboard for some reason or I made a mistake. When I repro it with extensions disabled and all settings cleared there are several formatters with the wrong separator: <img width="438" alt="Screen Shot 2022-06-01 at 9 07 40 am" src="https://user-"Definitely don't have set.
The bad formatters are coming through via the momento: Can extensions register these? Any ideas on how I could track down the source? I'll try adding my extensions in the clear user data dir.
to load all my extensions doesn't repro, I don't suppose the momento is synced across platforms? !
Likely cause of regression: cc
PR out:
this didn't end up fixing it because the synced formatters still seem to be getting pulled in. Any ideas on how we should clear out the bad cache? I was hoping this would be a quick drive by fix.

Anywhere labels are used gets impacted for multi platform users: <img width="396" alt="Screen Shot 2022-06-03 at 4 53 07 am" src="https://user-"
I think a bandaid fix is to either revert this change entirely or change the storage key that is used.
I don't think anyone has a strong preference on name so updating the storage key name is sane to me.
thanks, will do this today
Thanks for fixing this I didn't realize that we synced workspace state as part of settings sync.
Change:
import { ICellRange } from 'vs/workbench/contrib/notebook/common/notebookRange'; import { executingStateIcon } from 'vs/workbench/contrib/notebook/browser/notebookIcons'; import { INotebookExecutionStateService } from 'vs/workbench/contrib/notebook/common/notebookExecutionStateService'; <del> import { NotebookCellExecutionState } from 'vs/workbench/contrib/notebook/common/notebookCommon'; </del> <ins> import { CellKind, NotebookCellExecutionState } from 'vs/workbench/contrib/notebook/common/notebookCommon'; </ins> import { MutableDisposable } from 'vs/base/common/lifecycle'; export class FoldedCellHint extends CellContentPart {

Discussion:
When a few cells have been collapsed via markdown cells, a placeholder is displayed The in the placeholder seems to behave like an icon, hence I keep making the assumption that I can click this. However clicking this does nothing, but double clicking will edit the header cell. What I want is the icon to expand the collapsed cells, ! As you can see here, when the mouse is over the icon, it looks like it can be clicked. !
I think there might be some confusion around the purpose of this icon/button. This is the run button for folded sections and doesn't (shouldn't) have any control over the expansion of the folded section. This will execute any code cells within the folded section, and switch to a spinning run indicator (will change in the outline as well if you have code cells visible). The ellipses on the right-hand side of the hint () act as the expand section icon, however there is a bug with the cursor state; it should change to the pointer to more clearly show that you can click it on its own. As for the run button then, I think this a bug more relating to it appearing when there are no code cells within a collapsed section. That should be an easy fix.
Moving to May
Change:
export class AbstractVariableResolverService implements IConfigurationResolverService { <ins> static readonly VARIABLE_LHS = '${'; </ins> static readonly VARIABLE_REGEXP = /${(.*?)}/g; declare readonly _serviceBrand: undefined;

Discussion:
Apparently resolving a string like will work but it will leave the last curly brace. We should disallow this case or throw an error, etc. See
Still seeing some odd behavior (although this may be expected) Repro MacOs : new terminal Bug In the terminal, see: This does not happen if I use a setting such as
Looks like that's a side effect of 'breaking' the path. Nested variables are just no longer interpolated, it's left as:
are those side effects you listed above intended side effects of the change? If so, I see the same thing on codespaces and we can just leave this issue verified. Otherwise, should the issue be moved to the next milestone?
Yes, it's intended that variables that have nested segments are no longer replace. Previously it would have resulted in a malformed string.
Change:
}, localize('revertBeforeShutdown', "Reverting editors with unsaved changes is taking a bit longer...")); } <del> private async noVeto(backupsToDiscard: IWorkingCopyIdentifier[]): Promise<boolean> { // Discard backups from working copies the // user either saved or reverted await this.discardBackupsBeforeShutdown(backupsToDiscard); return false; // no veto (no dirty) } private async onBeforeShutdownWithoutDirty(): Promise<boolean> { </del> <ins> private onBeforeShutdownWithoutDirty(): Promise<boolean> { </ins> // We are about to shutdown without dirty editors // and will discard any backups that are still

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.73.0-insider OS Version: Windows_NT x64 10.0. Auto Save by onFocusChange does not sync internal cache when direct quitting by 'X' button. Steps to Reproduce: settings: "Files: Auto Save" =onFocusChange a text file and save it somewhere. the file a little more. But this time, do not save or change focus and just press 'X' button directly to quit. the text file again with vscode. to save the file. Now you can see this error message: "Failed to save '...': The content of the file is newer." <img width="341" alt="image" src="https://user-"
That is weird, we trigger auto save on shutdown unless auto save is turned off: Does this still reproduce in all projects?
Oh nice I can reproduce, looks really like a bug.
Great catch!
Thank you for your response and effort on this issue!
<!-- 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:
} class SettingsTreeDelegate implements IListVirtualDelegate<SettingsTreeGroupChild> { <del> getHeight(element: SettingsTreeElement): number { </del> <ins> private heightCache = new WeakMap<SettingsTreeGroupChild, number>(); getHeight(element: SettingsTreeGroupChild): number { const cachedHeight = this.heightCache.get(element); if (typeof cachedHeight === 'number') { return cachedHeight; } </ins> if (element instanceof SettingsTreeGroupElement) { if (element.isFirstGroup) { return 31;

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