jiebi/CodeConvo huggingface dataset:
Change:
readonly onDidTriggerButton: Event<QuickInputButton>; /** <del> * Items to pick from. </del> <ins> * Items to pick from. This can be read and updated by the extension. </ins> */ items: readonly T[];

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 <!-- 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.56.2 OS Version: Darwin x64 19.6.0 I was confused by the QuickPick API as and were commented "This can be read and updated by the extension." while wasn't. Then I was trying to dispose QuickInput and create a new one to update items, but after I read the source code I found can be directly updated by extensions
verification: look at the PR. It updated a comment.
Change:
} private onWillShutdown(): void { <ins> this.logService.trace('SharedProcess: onWillShutdown'); </ins> const window = this.window; if (!window) { return; // possibly too early before created

Discussion:
This here: Is strange to me because while this call is , it will not prolong the shutdown on the main process which is sync: Since the user of this event does not seem to use , I suggest to make the not support promises.
Change:
return token.astNode as TextAstNode; case TokenKind.OpeningBracket: { <ins> if (level > 300) { // To prevent stack overflows return new TextAstNode(token.length); } </ins> const set = openedBracketIds.merge(token.bracketIds); <del> const child = this.parseList(set); </del> <ins> const child = this.parseList(set, level + 1); </ins> const nextToken = this.tokenizer.peek(); if (

Discussion:
copy the contents of paste into a untitled editor it takes seconds for me before the content appears, sometimes not at all !
Oh, there is this in the console:
Change:
} const link = theme.getColor(textLinkForeground); if (link) { <del> collector.addRule(`.monaco-workbench .part.editor > .content .walkThroughContent a { color: ${link}; }`); </del> <ins> collector.addRule(`.monaco-workbench .part.editor > .content .walkThroughContent a[href] { color: ${link}; }`); </ins> } const activeLink = theme.getColor(textLinkActiveForeground); if (activeLink) { collector.addRule(`.monaco-workbench .part.editor > .content .walkThroughContent a:hover, <del> .monaco-workbench .part.editor > .content .walkThroughContent a:active { color: ${activeLink}; }`); </del> <ins> .monaco-workbench .part.editor > .content .walkThroughContent a[href]:active { color: ${activeLink}; }`); </ins> } const focusColor = theme.getColor(focusBorder); if (focusColor) { <del> collector.addRule(`.monaco-workbench .part.editor > .content .walkThroughContent a:focus { outline-color: ${focusColor}; }`); </del> <ins> collector.addRule(`.monaco-workbench .part.editor > .content .walkThroughContent a[href]:focus { outline-color: ${focusColor}; }`); </ins> } const shortcut = theme.getColor(textPreformatForeground); if (shortcut) {

Discussion:
Issue Type: <bBug</bRepo interactive playground and trigger suggest widget Bug The styling of the suggest widget shows everything in blue: ! Here's a normal suggest widget for comparison: ! VS Code version: Code - Insiders 1.40.0-insider (, 2019-10-21T05:39:31.415Z) OS version: Darwin x64 18.7.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Ok. I found the line of code that causes this. This CSS rule has a larger priority than CSS rules that style highlighted labels. So here are two ways to fix this: the priority, e.g. this rule so that it only applies to such tags that have a non-empty href attribute
duplicate of
Actually will mark the other as duplicate as this one has a PR. Thanks I will take a look.
Change:
// 3a, 3b, 3c if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) { // 3c. The token starts inside the deletion range, and ends after the deletion range <del> // => the token moves left and shrinks if (tokenDeltaLine === startDeltaLine) { // the deletion started on the same line as the token // => the token moves left and shrinks tokenStartCharacter = startCharacter; tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter); } else { // the deletion started on a line above the token // => the token moves to the beginning of the line tokenStartCharacter = 0; tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter); } </del> <ins> // => the token moves to continue right after the deletion tokenDeltaLine = startDeltaLine; tokenStartCharacter = startCharacter; tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter); </ins> } else { // 3a. The token is inside the deletion range // 3b. The token starts inside the deletion range, and ends at the same position as the deletion range

Discussion:
This was filed at , but I believe the crash is a VS Code issue. I can reproduce the issue by doing the following: Set up a Dart SDK and install the Dart extension Open an empty folder and create a file with the following contents (and no trailing newline): Run the "Organize Imports" command VS Code immediately hangs and the cursor stops flashing, eventually reporting the crash and asking to reopen/close I ran the Dart language server from source and stripped out a lot of the capabilities to reduce the traffic. When removing the Semantic Tokens capability, the issue stops occurring, so it may be related to semantic tokens but I'm not certain. Here is the LSP log (the version running the reduced set of Dart server capabilities): Here is the crash-dump folder: Symbolicated: , though (mentioned at ) is a 404 so these may be incomplete. I've not had any luck reproducing this without the Dart extension/server by writing extension code that just applies the same edits (possibly because it requires semantic tokens) nor have I spotted anything unusual in the LSP traffic, but I'll have another go through these and post back if I figure anything out. Hopefully the crash log will help though. VS Code version:
I was able to reproduce this in an isolated test extension by just hard-coding semantic tokens and the edits: The complete code looks like this (though you'll need to contribute the "danny" language or change it.. I didn't want to reuse an existing language incase it had its own semantic tokens):
Doesn't seem to reproduce in the . However, I can observe in VS Code that LineTokens is created with unsorted offsets:
Thank you for the clean repro!
Fix LGTM, thanks! /verified
Change:
*--------------------------------------------------------------------------------------------*/ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IAccessibleViewImplentation } from 'vs/platform/accessibility/browser/accessibleViewRegistry'; <del> import { NOTEBOOK_IS_ACTIVE_EDITOR } from 'vs/workbench/contrib/notebook/common/notebookContextKeys'; </del> <ins> import { NOTEBOOK_EDITOR_FOCUSED } from 'vs/workbench/contrib/notebook/common/notebookContextKeys'; </ins> import { localize } from 'vs/nls'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { AccessibleViewProviderId, AccessibleViewType, AccessibleContentProvider } from 'vs/platform/accessibility/browser/accessibleView';

Discussion:
Testing a notebook in the editor a chat response F1 :bug: a11y help appears for notebook, I have to close the notebook before I can get a11y help for chat
need a stricter clause here I think
Change:
"languages": [ { "id": "ignore", <del> "filenames": [ </del> <ins> "extensions": [ </ins> ".npmignore" ] }, { "id": "properties", <del> "filenames": [ </del> <ins> "extensions": [ </ins> ".npmrc" ] }

Discussion:
Some extensions only apply languages to files with an exact name by default. They should instead include all files ending with the relevant extension, regardless of the prefix. Examples I found are: The npm extension applies the language only to files named exactly , e.g. not to The npm extension applies the language only to files named exactly , e.g. not to The git extension applies the language only to files named exactly , e.g. not The built-in file icon theme recognizes these files by their extension and shows the matching icons besides them, but some extensions don't apply the relevant language to it. A project might include multiple files of the same type in the same folder, and configure their tools to use one or the other, depending on the need. All of the files should have the correct language regardless of their filename, all that should matter is the file extension. Repro: Create and open a file named Expected: The language mode will be set to the "Ignore" language Actual: The language mode is "Plain Text"
Change:
} } <ins> private setRegisteredLanguage(languageService: ILanguageService, newLanguage: string, currentLanguage: string) { // The language defined in the cell might not be supported in the editor so the text model might be using the default fallback // If so let's not modify the language const isFallBackLanguage = (newLanguage === PLAINTEXT_LANGUAGE_ID || newLanguage === 'jupyter'); if (!languageService.isRegisteredLanguageId(currentLanguage) && isFallBackLanguage) { // notify to display warning, but don't change the language this._onDidChangeLanguage.fire(currentLanguage); } else { this.language = newLanguage; } } </ins> constructor( readonly uri: URI, public readonly handle: number,

Discussion:
Currently if we don't find language provider for cells, we would fall back to , this will make the document dirty immediately. We should actually respect the language metadata, show a warning on the cell status bar language picker and ask users to install language extensions for it.
Change:
@ILanguageService private languageService: ILanguageService, @IModelService private modelService: IModelService, @IThemeService private themeService: IThemeService, <ins> @IConfigurationService configurationService: IConfigurationService </ins> ) { super(); this.form = dom.append(container, dom.$('.comment-form')); <del> this.commentEditor = this._register(this._scopedInstatiationService.createInstance(SimpleCommentEditor, this.form, SimpleCommentEditor.getEditorOptions(), this._parentThread)); </del> <ins> this.commentEditor = this._register(this._scopedInstatiationService.createInstance(SimpleCommentEditor, this.form, SimpleCommentEditor.getEditorOptions(configurationService), this._parentThread)); </ins> this.commentEditorIsEmpty = CommentContextKeys.commentIsEmpty.bindTo(this._contextKeyService); this.commentEditorIsEmpty.set(!this._pendingComment);

Discussion:
<!-- 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. --When replying to a code review comment, the reply editor unconditionally auto-closes brackets. We have had complaints from users about not affecting this behavior (when set to ). We are not 100% convinced that should apply here, since conceptually, editing comments is different from editing code, so a separate setting for comments could be more flexible, but maybe also unnecessarily complex. discusses specifying a on to control other behavior like syntax highlighting (mainly plaintext vs Markdown). Since already supports using per-language settings, it might work well enough to just make also take effect in the comment reply editor.
it seems that only applies to the main editor and not also other editors. Is this expected? I took a look and from what I can see all will respect language configurations for auto closing pairs. It's only when you try to set it something other than that it get's ignored.
I don't know much about that setting, I'd need to debug too.
do you know the answer to
To allow for most flexibility, the code editor doesn't listen to the by itself. That job is always left to the place which instantiates editors. For example, the workbench listens to the and forwards all values to the editor instaces.
Change:
return pad(new Date().getMinutes().valueOf(), 2); } else if (name === 'CURRENT_SECOND') { return pad(new Date().getSeconds().valueOf(), 2); <ins> } else if (name === 'CURRENT_DAY_NAME') { return TimeBasedVariableResolver.dayNames[new Date().getDay()]; } else if (name === 'CURRENT_DAY_NAME_SHORT') { return TimeBasedVariableResolver.dayNamesShort[new Date().getDay()]; } else if (name === 'CURRENT_MONTH_NAME') { return TimeBasedVariableResolver.monthNames[new Date().getMonth()]; } else if (name === 'CURRENT_MONTH_NAME_SHORT') { return TimeBasedVariableResolver.monthNamesShort[new Date().getMonth()]; </ins> } return undefined;

Discussion:
I'm happy to see the new date-based snippet variables in v1.20.0. I would love to see some additional ones since I wanted to use this for generating journal templates. Something like this: CURRENTDAYNAME: Monday, Tuesday, ... CURRENTDAYNAMESHORT: Mon, Tue, ... CURRENTMONTHNAME: January, February, ... CURRENTMONTHNAMESHORT: Jan, Feb, ... Thank you.
A little more tricky because you might want to consider localisation settings...
Change:
} // If we only have one history item that contains all the labels (current, remote, base), <del> // we don't need to show it, unless it is the root commit (does not have any parents). if (historyItemsElement.length === 1 && historyItemsElement[0].parentIds.length > 0) { </del> <ins> // we don't need to show it, unless it is the root commit (does not have any parents) and // the repository has not been published yet. if (historyItemsElement.length === 1 && (historyItemsElement[0].parentIds.length > 0 || currentHistoryItemGroup.remote)) { </ins> const currentHistoryItemGroupLabels = [ currentHistoryItemGroup.name, ...currentHistoryItemGroup.remote ? [currentHistoryItemGroup.remote.name] : [],

Discussion:
Steps to Reproduce: a new git repository a file, and create the initial commit the repository to GitHub Expected: history graph should be empty Actual: history graph contains the initial repository
Change:
// this method is called when vs code is activated export function activate(context: ExtensionContext) { <del> const serverMain = context.asAbsolutePath('server/dist/browser/cssServerMain.js'); </del> <ins> const serverMain = Uri.joinPath(context.extensionUri, 'server/dist/browser/cssServerMain.js'); </ins> try { <del> const worker = new Worker(serverMain); </del> <ins> const worker = new Worker(serverMain.toString()); </ins> const newLanguageClient: LanguageClientConstructor = (id: string, name: string, clientOptions: LanguageClientOptions) => { return new LanguageClient(id, name, clientOptions, worker); };

Discussion:
The usage of as seen here only works because there is there is special code to return a url-string (instead of a path, see ). For loading extension relative resources the and should be used. That is the new, web-ready replacement API
fyi
tried to adopt this. When will be available. I can't find it in .
Opened for ESLint
It's in the API since 4 months:
Change:
const update = () => { clearNode(box); <ins> this.keybindingLabels.forEach(label => label.dispose()); this.keybindingLabels.clear(); </ins> for (const entry of selected) { const keys = this.keybindingService.lookupKeybinding(entry.id); if (!keys) {

Discussion:
Version of VS Code: 1.89.0 ! Your operating system: Windows 11 List of extensions that you have installed: Happens with none installed. Reproducible steps: 1 - Open VsCode. 2 - Hover over the Show Settings Ctrl + , Watermark 3 - Hover over Find in Files Ctrl + Shift + F What you expected to see, versus what you actually saw: When hover on Ctrl + , ! When hover on Ctrl + Shift + F and any other !
This is a regression from
Does the cause some other bug?
I think we need to properly keep track of disposables.
Change:
setActiveInstance(instance: ITerminalInstance): void; /** <ins> * Reveal and focus the instance, regardless of its location. */ focusInstance(instance: ITerminalInstance): void; /** </ins> * Reveal and focus the active instance, regardless of its location. */ focusActiveInstance(): Promise<void>;

Discussion:
Type: <bBug</bPreparation: create the following file: the terminals panel, create a new shell terminal it to the main editor area to make it a full-size terminal open an editor tab (any file will do, including Command-N) sure the panel is closed (press Command-J to close it if it is open) the above task (e.g. with Command-P, then type ) Expected: the panel opens and shows the running task Actual: the editor terminal is brought to the front, and the panel stays closed VS Code version: Code - Insiders 1.92.0-insider (, 2024-07-11T05:03:58.450Z) OS version: Darwin arm64 23.5.0 Modes: <details<summarySystem Info</summary </detailsExtensions disabled <!-- generated by issue reporter --
In this scenario, focus also fails.
I can confirm that fixes the problem for me. Thanks!
Change:
async close(): Promise<void> { if (!this.closing) { <del> this.closing = this.flushDelayer ? this.flushDelayer.trigger(() => this.doSave(), 0 /* as soon as possible */) : this.doSave(); </del> <ins> this.closing = this.flushDelayer.trigger(() => this.doSave(), 0 /* as soon as possible */); </ins> } return this.closing;

Discussion:
I noticed how we seem to be having a that is only used in : In that case we seem to not be using a for writing. But that will have pretty bad consequences because it can leave calls hanging even after . The unit test failure here actually shows it: I think this might have been introduced via
This strategy was introduced by I do not remember why we need immediate in server. I saw your change and I hope flush delayer for immediate should work.
I think the importance here is to always use the delayer, even when its with a delay of , because it was not only used to delay the saves, but also to aggregate them
Change:
import { Emitter, Event, EventBufferer, Relay } from 'vs/base/common/event'; import { fuzzyScore, FuzzyScore } from 'vs/base/common/filters'; import { KeyCode } from 'vs/base/common/keyCodes'; <del> import { Disposable, DisposableStore, dispose, IDisposable, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { Disposable, DisposableStore, dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; </ins> import { clamp } from 'vs/base/common/numbers'; import { ScrollEvent } from 'vs/base/common/scrollable'; import { ISpliceable } from 'vs/base/common/sequence';

Discussion:
Testing Repro: a node in a tree that is fairly deep. a parent node. that there's a slight flicker. Consecutive collapse/expands don't have that, only the first. ]()
Change:
super.render(this._container); this.element = DOM.append(this._container, DOM.$('')); this.element.className = this._className; <ins> this.element.classList.add('monaco-dropdown-with-primary'); </ins> this._primaryAction.render(this.element); this._dropdown.render(this.element); <del> this._stylize(); } private _stylize(): void { if (!this.element || !this._dropdown.element || !this._primaryAction.element) { return; } const elementStyle = this.element.style; elementStyle.display = 'flex'; elementStyle.flexDirection = 'row'; const dropdownStyle = this._dropdown.element.style; dropdownStyle.paddingLeft = '0px'; dropdownStyle.fontSize = '12px'; dropdownStyle.maxWidth = '6px'; dropdownStyle.lineHeight = '16px'; dropdownStyle.marginLeft = '0px'; const primaryActionStyle = this._primaryAction.element.style; primaryActionStyle.marginRight = '0px'; if (this._primaryAction.element.children[0]) { (this._primaryAction.element.children[0] as HTMLElement).style.paddingRight = '0px'; } </del> } update(dropdownAction: MenuItemAction, dropdownMenuActions: IAction[], dropdownIcon?: string): void { this._dropdown?.dispose(); <del> this._dropdown = new DropdownMenuActionViewItem(dropdownAction, dropdownMenuActions, this._contextMenuService, { menuAsChild: true, classNames: ['codicon', dropdownIcon || 'codicon-chevron-down'] }); </del> <ins> this._dropdown = new DropdownMenuActionViewItem(dropdownAction, dropdownMenuActions, this._contextMenuProvider, { menuAsChild: true, classNames: ['codicon', dropdownIcon || 'codicon-chevron-down'] }); </ins> if (this.element) { this._dropdown.render(this.element); <del> this._stylize(); </del> } } }

Discussion:
For reuse by other code areas
Also polish styling including a hover over the joint buttons
Mockup: !
Fixed in
Change:
export class SCMTreeKeyboardNavigationLabelProvider implements ICompressibleKeyboardNavigationLabelProvider<TreeElement> { <ins> constructor(@ILabelService private readonly labelService: ILabelService) { } </ins> getKeyboardNavigationLabel(element: TreeElement): { toString(): string; } | undefined { if (ResourceTree.isResourceNode(element)) { return element.name; } else if (isSCMResourceGroup(element)) { return element.label; } else { <del> return basename(element.sourceUri); </del> <ins> // Since a match in the file name takes precedence over a match // in the folder name we are returning the label as file/folder. const fileName = basename(element.sourceUri); const filePath = this.labelService.getUriLabel(dirname(element.sourceUri), { relative: true }); return filePath.length !== 0 ? `${fileName}${filePath}` : fileName; </ins> } }

Discussion:
I often make a lot of changes at once, and then need to commit them. Some changes don't belong together in the same commit, and some aren't ready to be committed at all. The current UI allows me to select some files to be staged for commit and exclude others, but it requires me to carefully select my changes from a potentially very long list. It would be incredibly useful if I could search or filter files by path pattern and stage/unstage all search results. Even better would be if I could search for lines of code and either stage files containing those lines or just the matched lines. This would streamline my git workflow by a lot.
I guess my ideal UI would allow me to: search files by path, and stage/unstage all matched files stage/unstage individually selected files search code in files, and stage/unstage all matched lines stage/unstage individually selected lines stage/unstage all matched files stage/unstage individually selected files
Since last month, SCM supports fancy keyboard navigation and filtering. Simply start typing when focused on the view. A widget will appear which you can use to toggle between simple highlighting and filtering. Currently filtering is done only on file names though, not paths or even code, so I can leave this open for additional filtering fields.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote 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!