jiebi/CodeConvo huggingface dataset:
Change:
} public run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void { <del> CursorUndoController.get(editor).cursorUndo(); </del> <ins> CursorUndoRedoController.get(editor).cursorUndo(); } } export class CursorRedo extends EditorAction { constructor() { super({ id: 'cursorRedo', label: nls.localize('cursor.redo', "Soft Redo"), alias: 'Soft Redo', precondition: undefined }); } public run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void { CursorUndoRedoController.get(editor).cursorRedo(); </ins> } } <del> registerEditorContribution(CursorUndoController.ID, CursorUndoController); </del> <ins> registerEditorContribution(CursorUndoRedoController.ID, CursorUndoRedoController); </ins> registerEditorAction(CursorUndo); <ins> registerEditorAction(CursorRedo); </ins>

Discussion:
There is a command called "cursorUndo" (name in command palette: "Soft Undo") that undo's cursor and selection movements. There should be a matching "cursorRedo" (name in command palette: "Soft Redo") to redo those movements after undoing with "cursorUndo". VSCode Version: 1.38.1 OS: Windows
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.504 --<!-- potentialduplicatescomment --
This issue is different than the suggested duplicates.
I am working on this. PR will be submitted soon.
Apologies , wrong place, problem with late night Github with too many wrokspaces open :) Please ignore
Cool cool but what does it have to do with my cursor redo feature request? Did you mean to report a new issue?
Change:
}; IconLabel.adjustXAndShowCustomHover(hoverOptions, mouseX, hoverDelegate, isHovering); <del> const resolvedTooltip = await tooltip(tokenSource.token); </del> <ins> const resolvedTooltip = (await tooltip(tokenSource.token)) ?? (!isString(markdownTooltip) ? markdownTooltip.markdownNotSupportedFallback : undefined); </ins> if (resolvedTooltip) { hoverOptions = { text: resolvedTooltip, target, anchorPosition: AnchorPosition.BELOW }; <ins> // awaiting the tooltip could take a while. Make sure we're still hovering. IconLabel.adjustXAndShowCustomHover(hoverOptions, mouseX, hoverDelegate, isHovering); } else { hoverDelegate.hideHover(); </ins> } } <del> // awaiting the tooltip could take a while. Make sure we're still hovering. IconLabel.adjustXAndShowCustomHover(hoverOptions, mouseX, hoverDelegate, isHovering); </del> } mouseMoveDisposable.dispose(); }, hoverDelay);

Discussion:
Issue Type: <bBug</bIn the past, if the tree item was falsy, the would be used instead on hover. makes it so that if the tree item's is falsy after calling , then instead of following the old behavior and using , it will stick as 'Loading...' forever. Instead, if is falsy, it should fall back to to most closely resemble prior behavior. VS Code version: Code - Insiders 1.53.0-insider (, 2021-01-27T08:59:32.031Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </details<details<summaryExtensions (11)</summaryExtensionVersion ------ vscode-eslint2.1.14 vscode-docker1.9.1 csharp1.23.8 python2021.1. jupyter2020.12. remote-containers0.156.0 remote-ssh0.63.0 remote-ssh-edit0.63.0 remote-wsl0.53.2 vscode-remote-extensionpack0.20.0 azure-account0.9.5 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
FYI
this fix is out in the latest insiders, can you please let us know when you've verified, thanks
everything seems to be working nicely, thanks!
Change:
} } <del> private async updateWorkspaceAndInitializeConfiguration(workspace: Workspace): Promise<void> { </del> <ins> private async updateWorkspaceAndInitializeConfiguration(workspace: Workspace, trigger: boolean): Promise<void> { </ins> const hasWorkspaceBefore = !!this.workspace; let previousState: WorkbenchState | undefined; let previousWorkspacePath: string | undefined;

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?: not applicable <!-- 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.79.0-insider OS Version: Windows 11 x64 Steps to Reproduce: an extension that implements a FileSystemProvider and serves a file containing a setting. a workspace that uses this FSP. that the setting has no effect until the workspace is reloaded. I will prepare a branch of fsprovider-sample to demonstrate the issue.
Repro steps: project () and VSIX (). an empty profile and install the VSIX into it. no folder or workspace open, run . Explorer find and open that though this specifies a font size of 24 it is displayed in the default font size. and observe that the font size is now correct. !
/assign I will submit a PR to fix this.
<!-- 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:
const fullscreen = isFullscreen(this.window); return { ...state, <del> bounds: this.maximized ? undefined : state.bounds, // ignore if maximized (fullscreen is not yet supported!) </del> <ins> bounds: state.bounds, </ins> mode: this.maximized ? AuxiliaryWindowMode.Maximized : fullscreen ? AuxiliaryWindowMode.Fullscreen : AuxiliaryWindowMode.Normal }; }

Discussion:
Testing on Linux I have 2 monitors: primary and secondary. I opened VS Code and maximized it on my secondary monitor. Then I dragged an aux window out and maximized it on my primary monitor. After closing and reopening VS Code, the maximized state of both my main window and my aux window were restored, but both were on my secondary monitor. The aux window was on top. I'm using Remote Desktop + Hyper V, so maybe something is going on there: Remote Desktop from Windows to another Windows machine. Hyper V to an Ubuntu VM.
Looks like which monitor is primary and which is secondary doesn't seem to matter as the same thing happens when swap the windows that aux and main are on.
I also experienced a variant of this: Main VS Code window maximized in primary monitor, 1 aux window maximized in primary monitor, 1 aux window maximized in secondary monitor Close VS Code Reopen VS Code All 3 windows (main and aux) are restored to max, but they're all restored to my primary monitor I'm testing on Windows 11 Insiders.
Change:
linkHandler: (url) => { this.options.linkOpenerDelegate(url); }, <del> showPointer: true, </del> <ins> appearance: { showPointer: true, }, </ins> container: this.container, <del> hoverPosition: HoverPosition.RIGHT </del> <ins> position: { hoverPosition: HoverPosition.RIGHT } </ins> }, false); }

Discussion:
Type: <bBug</bTooltip position changed VSCode insiders and also see the right pointer is also missing Insiders release ! Stable release ! VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-24T15:21:39.004Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ ng-template17.0.2 multi-cursor-case-preserve1.0.5 codeium1.4.20 codium0.7.19 svg-gallery2.1.0 console-log0.6.2 gitlens2023.11.2404 vscode-test-explorer2.21.1 angular2-switcher0.4.0 vscode-jest-test-adapter0.8.1 template-string-converter0.6.1 test-adapter-converter0.1.8 gitpatch0.2.1 material-icon-theme4.32.0 pretty-ts-errors0.5.2 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Assuming this could be a bug in Hover infrastructure. Please let me know if it is otherwise.
Change:
"editorInlayHint.foreground": "#8b949e", "editorInlayHint.typeBackground": "#8b949e33", "editorInlayHint.typeForeground": "#8b949e", <del> "editorLineNumber.activeForeground": "#ffffffc5", </del> <ins> "editorLineNumber.activeForeground": "#171184", </ins> "editorLineNumber.foreground": "#6e7681", "editorOverviewRuler.border": "#0000001a", "editorSuggestWidget.background": "#f8f8f8",

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: OS Version: Windows 10 -- Ref: Steps to Reproduce: theme to the line number in the Editor disappear for the active line !
Change:
@IInstantiationService instantiationService: IInstantiationService, ) { super(); <del> this.extensionsScanner = this._register(instantiationService.createInstance(ExtensionsScanner)); </del> <ins> const extensionLifecycle = this._register(instantiationService.createInstance(ExtensionsLifecycle)); this.extensionsScanner = this._register(instantiationService.createInstance(ExtensionsScanner, extension => extensionLifecycle.postUninstall(extension))); </ins> this.manifestCache = this._register(new ExtensionsManifestCache(environmentService, this)); this.extensionsDownloader = this._register(instantiationService.createInstance(ExtensionsDownloader));

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.46.0 OS Version: Windows 10/macOS Catalina 10.15.4 VS Code 1.46 no longer executes the Attached test extension (rename file extension to .vsix) which creates a file on uninstall in the user's home directory. Using VS Code 1.45.1 the file is created on both Windows and macOS. Using VS Code 1.46 no file is created. Steps to Reproduce: attached extension extension VS Code VS Code again file is created <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: This is an extension management problem
Change:
} }); <ins> const notebookCodeActionsOnSaveSchema: IConfigurationPropertySchema = { oneOf: [ { type: 'object', additionalProperties: { type: 'string' }, }, { type: 'array', items: { type: 'string' } } ], markdownDescription: nls.localize('notebook.codeActionsOnSave', 'Run a series of Code Actions for a notebook on save. Code Actions must be specified, the file must not be saved after delay, and the editor must not be shutting down. Example: `"notebook.source.organizeImports": "explicit"`'), type: 'object', additionalProperties: { type: ['string', 'boolean'], enum: ['explicit', 'never', true, false], // enum: ['explicit', 'always', 'never'], -- autosave support needs to be built first // nls.localize('always', 'Always triggers Code Actions on save, including autosave, focus, and window change events.'), }, default: {} }; export const notebookEditorConfiguration = Object.freeze<IConfigurationNode>({ ...editorConfigurationBaseNode, properties: { 'notebook.codeActionsOnSave': notebookCodeActionsOnSaveSchema } }); </ins> export class CodeActionsContribution extends Disposable implements IWorkbenchContribution { private _contributedCodeActions: CodeActionsExtensionPoint[] = [];

Discussion:
Testing I have the following set: When using the sample extension at I expect this to not trigger the code action on save but it does do it. Because there is no auto-complete I tried a bunch of other things also to no avail.
Change:
return remoteFileDialog.showSaveDialog(options); } <del> private getSchemeFilterForWindow() { </del> <ins> private getSchemeFilterForWindow(): string { </ins> return !this.environmentService.configuration.remoteAuthority ? Schemas.file : REMOTE_HOST_SCHEME; } private getFileSystemSchema(options: { availableFileSystems?: string[], defaultUri?: URI }): string { <del> return options.availableFileSystems && options.availableFileSystems[0] || options.defaultUri && options.defaultUri.scheme || this.getSchemeFilterForWindow(); </del> <ins> return options.availableFileSystems && options.availableFileSystems[0] || this.getSchemeFilterForWindow(); </ins> } }

Discussion:
vscode with no folder (purple status bar) untitled file, save as file how the simple dialog offers me the root path. This is wrong imho, you should offer the home directory, or at least something wich I choose the last time
Could we keep the Untitled URI scheme here? All file scheme URIs are absolute. Which means that the remote file picker would have to use a heuristic like checking for "Untitled-" in the path to tell that the user home should be used.
Feel free to change. is the expert on the untitled URIs...
the URI only seems to be used in combination of the dialog itself (both native and custom - ), so I think we can preserve the if you deal with the untitled case in both worlds.
Change:
all: this.userDataProfilesService.profiles, profile: this.profile || this.userDataProfilesService.defaultProfile }; <ins> configuration.logLevel = this.logService.getLevel(); </ins> // Load config this.load(configuration, { isReload: true, disableExtensions: cli?.['disable-extensions'] });

Discussion:
the command palette, set log level to the window the current log level in the command palette It wrongly indicates . !
Change:
*--------------------------------------------------------------------------------------------*/ import { IDragAndDropData } from 'vs/base/browser/dnd'; <del> import { $, addDisposableListener, append, clearNode, createStyleSheet, getWindow, h, hasParentWithClass, isActiveElement } from 'vs/base/browser/dom'; </del> <ins> import { $, append, clearNode, createStyleSheet, getWindow, h, hasParentWithClass, isActiveElement } from 'vs/base/browser/dom'; </ins> import { DomEmitter } from 'vs/base/browser/event'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';

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:
table { border-collapse: collapse; <ins> margin-bottom: 0.7em; </ins> } th {

Discussion:
Issue Type: <bBug</ba new markdown file. For example: txt code block (with backslash to prevent outer markdown from being prematurely terminated in the issue report)  the preview for the markdown file that the spacing after the table and before the header is very small and makes it less readable. I've tried adding extra lines after the table, but they just get collapsed since it's just whitespace. VS Code version: Code 1.56.0 (Universal) (, 2021-05-04T22:06:21.189Z) OS version: Darwin x64 20.3.0 <details<summarySystem Info</summary </details<details<summaryExtensions (12)</summaryExtensionVersion ------ Bookmarks13.0.4 vscode-eslint2.1.20 gitlens11.4.1 EditorConfig0.16.4 bash-ide-vscode1.11.0 vscode-docker1.12.1 mssql1.10.1 cpptools1.3.1 shellcheck0.14.1 pdf1.1.0 cmake0.0.17 markdown-all-in-one3.4.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Hi, according to the : The implication of the “one or more consecutive lines of text” rule is that Markdown supports “hard-wrapped” text paragraphs. This differs significantly from most other text-to-HTML formatters (including Movable Type’s “Convert Line Breaks” option) which translate every line break character in a paragraph into a <br /tag. You can insert 2 newlines or else you can insert a HTML line break like this txt code block (with backslash to prevent outer markdown from being prematurely terminated in the issue report)  hope that help ;)
hello I will love to take a shot this, could you provide a guide on what is needed.
Here's the css file for the markdown preview: Try seeing if other elements, such as images, also need more bottom padding in this case
I a margin-bottom to table element, after checking on image the existing space seams okay, you can review the PR
Change:
"console.error($1);" ], "description": "Log error to the console" <ins> }, "new Promise": { "prefix": "newpromise", "body": [ "new Promise((resolve, reject) => {", "t$TM_SELECTED_TEXT$0", "})" ], "description": "Create a new Promise" </ins> } }

Discussion:
<img width="1440" alt="image" src="https://user-"If you think this is an issue, I would love to help to fix it. MacOS: 12.3.1 VSCode: 1.67.0-insider Typescript: 4.6.4
Change:
static isEnabled(): boolean { // this will be a very high frequency event, so we only log a small percentage of them <del> return Math.trunc(Math.random() * 1000) < 5; // 5/1000 </del> <ins> return Math.trunc(Math.random() * 1000) < 0.5; </ins> } private readonly _pendingRequests = new Map<number, string>();

Discussion:
re We know from telemetry that deserialising and serialising RPC messages can become costly and this issue to follow up on that. For now, let's add telemetry if any of the API implementations send or receive unexpected large amount of data. We usually cap those but it is likely that we are missing a couple of cases
Change:
return; } <del> if (this.extension.type !== ExtensionType.User) { this.enabled = false; this.class = UpdateAction.DisabledClass; this.label = this.getLabel(); return; } </del> const canInstall = await this.extensionsWorkbenchService.canInstall(this.extension); const isInstalled = this.extension.state === ExtensionState.Installed;

Discussion:
Ability to update built in extensions
This is a pre-request to enable built-in extension to on-board to
Disabled updating builtin extensions in stable
Change:
}; const pickInstalledThemes = (activeItemId: string | undefined) => { <ins> const disposables = new DisposableStore(); </ins> return new Promise<void>((s, _) => { let isCompleted = false; <del> const disposables = new DisposableStore(); </del> const autoFocusIndex = picks.findIndex(p => isItem(p) && p.id === activeItemId); <del> const quickpick = this.quickInputService.createQuickPick<ThemeItem>({ useSeparators: true }); </del> <ins> const quickpick = disposables.add(this.quickInputService.createQuickPick<ThemeItem>({ useSeparators: true })); </ins> quickpick.items = picks; quickpick.title = this.options.title; quickpick.description = this.options.description;

Discussion:
Quick pickers are itself disposables, as well as the events they provide. Noticed a few leaks around picker instances and/or events: //cc
There's already a that is called when the picker hides. Isn't that good enough?
see the various events (those beginning with ) and how they are not getting disposed.
But they are going to an emitter that is owned by the quickpick. Disposing the quickpick is also disposed all its emitters. There's no real leak here.
my understanding is that an that gets disposed (when you dispose the quick picker) does not dispose the -functions it had returned, i.e. this code is not running: But maybe or can also chime in.
Yes - an emitter doesn't dispose its listeners. you basically rely on GC'ing here and I am uncertain if that actually works (e.g some disposables are tracked centrally for later blaming). I understand your motives but we generally dispose all the things
Change:
return this.visible ? this.ui.inputBox.hasFocus() : false; } <ins> public focusOnInput() { this.ui.inputBox.setFocus(); } </ins> onDidChangeSelection = this.onDidChangeSelectionEmitter.event; onDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;

Discussion:
We have a temporary fix for the release for but we need to do something better long term.
while working on quick access for tasks I noticed that we seem to be having 2 pickers for the same thing (?): Task quick open: ! "Run Task" picker: ! Is that intentional? Should the one be merged into the other?
Yes, they do not share much code :( as part of improving the quick pick I will converge them.
sounds good, please only change  and leave the other one because I plan to delete those old ones soon.
Change:
if (historyItemGroups.length > 0) { children.push({ label: localize('syncSeparatorHeader', "Incoming/Outgoing"), <ins> ariaLabel: localize('syncSeparatorHeaderAriaLabel', "Incoming and outgoing changes"), </ins> repository: inputOrElement, type: 'separator' } as SCMViewSeparatorElement);

Discussion:
Testing a screenreader. to the Incoming/Outgoing part of the SCM viewlet. Actual: "Incoming/Outgoing". Expected: something like "Incoming and outgoing changes" screenreader reads origin/some-branch-name for the incoming changes. Expected: "origin/some-branch-name incoming" or "incoming changes from origin/some-branch-name" screenreader reads some-branch-name for the outgoing changes. Expected: "some-branch-name outgoing" or "outgoing changes from some-branch-name" CC for alternative suggestions
Great point, we should lead with the info, so place "outgoing" or "incoming" before the branch name in this case.
I have confirmed that the titles show up upon hovering over the entries, but that NVDA still reads the text as-is rather than reading the title text. Reopening.
That's interesting given that I am using the IconLabel widget's property to set the aria label.
Change:
} private async installExtension(galleryExtension: IGalleryExtension) { <ins> openExtensionViewlet(this.paneCompositeService, `@id:${galleryExtension.identifier.id}`); const result = await this.dialogService.confirm({ message: localize('installExtension.confirm', "This will install extension '{0}' published by '{1}'. Do you want to continue?", galleryExtension.displayName, galleryExtension.publisherDisplayName), primaryButton: localize('installExtension.button.ok', "OK"), secondaryButton: localize('installExtension.button.cancel', "Cancel") }); if (!result.confirmed) { return false; } </ins> try { <del> openExtensionViewlet(this.paneCompositeService, `@id:${galleryExtension.identifier.id}`); </del> await this.progressService.withProgress({ location: ProgressLocation.Notification, title: localize('installing extensions', "Installing Extension {0}...", galleryExtension.displayName) }, async () => { <del> await this.extensionManagementService.installFromGallery(galleryExtension); </del> <ins> await this.extensionManagementService.installFromGallery(galleryExtension, { // Setting this to false is how you get the extension to be synced with Settings Sync (if enabled). isMachineScoped: false, }); </ins> }); return true; } catch (e) {

Discussion:
Pre-req: Settings Sync on brand new empty profile a theme Settings sync asks this strange question: ! Additionally: this dialog Theme is still applied but not installed
I tried and can't repro. Are there any specific steps you followed?
were there specific steps to repro this?
I can verify that cancelling the dialog no longer leaves the theme applied, thanks I can still reproduce the main issue though. Why would I not want to synchronize the theme I just picked for my brand new profile, given the profile is being synced?
I think is using the general extension install command that will ask user to sync or not before installing. If it is in core, one can use the API directly to install.
I think we still want an install confirmation dialog, but I agree that there should be no question about syncing.