jiebi/CodeConvo huggingface dataset:
Change:
ScrollDownLine = 'workbench.action.terminal.scrollDown', ScrollDownPage = 'workbench.action.terminal.scrollDownPage', ScrollToBottom = 'workbench.action.terminal.scrollToBottom', <ins> ScrollToBottomAccessibleView = 'workbench.action.terminal.scrollToBottomAccessibleView', </ins> ScrollUpLine = 'workbench.action.terminal.scrollUp', ScrollUpPage = 'workbench.action.terminal.scrollUpPage', ScrollToTop = 'workbench.action.terminal.scrollToTop', <ins> ScrollToTopAccessibleView = 'workbench.action.terminal.scrollToTopAccessibleView', </ins> Clear = 'workbench.action.terminal.clear', ClearSelection = 'workbench.action.terminal.clearSelection', ChangeIcon = 'workbench.action.terminal.changeIcon',

Discussion:
I have noticed that some Action2 instances are registered that reuse an id. That's not OK because Action2 is a singleton model object, e.g it keybinding or menu registrations refer to it by id. This should be cleaned up and from then on it should be an error to reuse an id [x] [x] [x] [x] [x] command 'toggleVisibility' [x] command 'removeView'
I believe this is all the same issue somewhere in views land?
This is how these actions are registered May I know what is the suggested approach?
Don't register them twice
fixes duplication in view land by first disposing old action and only then creating new ones
you are new to this issue, there are ids that are reused for Action2 and those need to be fixed. Today, this prints a warning but it this become an error soon
Adding for
Change:
} // Stat needs to be resolved first and then revealed <del> const options: IResolveFileOptions = { resolveTo: [resource], resolveMetadata: false }; </del> <ins> const options: IResolveFileOptions = { resolveTo: [resource], resolveMetadata: this.sortOrder === 'modified' }; </ins> const workspaceFolder = this.contextService.getWorkspaceFolder(resource); const rootUri = workspaceFolder ? workspaceFolder.uri : this.roots[0].resource; const root = this.roots.filter(r => r.resource.toString() === rootUri.toString()).pop()!;

Discussion:
<!-- 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: --I've set "explorer.sortOrder": "modified" but the explorer does switch back to default sort order. <!-- Use Help Report Issue to prefill these. --- VSCode Version:1.33.1 OS Version:Windows 10 1809 Steps to Reproduce: I push multiple times the "Refresh explorer" button in explorer on an opened folder the sort order changes between default and modified randomly. It can reproduced by fast clicking the button, the last order will persist. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
I can not reproduce this. Can you reproduce this with vscode insiders
I can also reproduce it in this insider build. Installed insiders, went to open settings and only have one setting set, the one I mentioned. It seems a fast double click does the trick after a few times. Probably you need more items inside your test folder? My folder (open folder) consist of 15 folders and 195 .ps files in open folder.
I can reproduce now. But only on windows slow machine. Currently I do not have cycles to look into this. A PR that fixes this is welcome. Code pointer Whoever wants to fix this should first 1) Be able to reproduce this consistnently 2) Check out code pointer and the issue is probably timing related how the sortOrder attribute is being read when resolving stats I will not accept some complex fixes. So the PR should be straight forward. Thanks
Good to read you can reproduce. I'm using a Dell Xps 15 -i7-32 GB, faster then Elon Musks Falcon rocket :D
I will look into this.
I found that the sort order would reset every time I opened the settings page again. I would choose modified time as the sort order, refresh the exporer and close the settings. It would be sorted correctly. Then when I would open the settings again, the sort order would reset to the default order, until I refresh the explorer again. This may be a different problem that what you were describing. !
Thanks a lot for fixing this!
Change:
}); } <del> CommandsRegistry.registerCommand(SET_CONTEXT_COMMAND_ID, setContext); </del> <ins> CommandsRegistry.registerCommand('_setContext', setContext); </ins> CommandsRegistry.registerCommand({ id: 'getContextKeyInfo',

Discussion:
This came from vscode-docs issue customer comment "The biggest missing documentation for extensions is the lack of setContext here " Should we add the description and metadata so that it will be part of the _generateCommandsDocumentation output?
FYI I would love this. At the same time, could we think about adding the corollary ? The number of hoops that need to be jumped through to get the right context make things very difficult (and other impossible). Here is a concrete example. In GitLens, I have commands that navigate forward and backward through revisions. The current diff editor behavior make these difficult to implement well -- leaving aside the details there, to work around it one solution I've come up with is duplicating those 2 commands, 1 for normal editors and 1 for diff editors. And then I have to duplicate all the placements ( and and then have the command behave appropriately based on the context. Alternatively, if there was a type api, I could avoid all of that, and just look up in my existing command and do the right thing. Way less complexity and explosion of commands and placements. Please?
I am also very concerned about this issue. I found the when I'm reading the source code of , but I didn't find it in , but in the . I hope the official team can fix this issue soon. Best wishes. : )
Like I found use of in the samples () and the 2016 update documentation. 2016 blog reference, but not in API docs and this issue has been open more than a year? Is it maybe considered "proposed API"?
seems like the issue belongs to , right?
same here too... unfortunately documentation is falling behind!
examples to Command Extension Guide with
Why is this still open? Are we happy that it is documented in the docs?
Change:
workbenchContributionsRegistry.registerWorkbenchContribution(PortRestore, LifecyclePhase.Eventually); workbenchContributionsRegistry.registerWorkbenchContribution(AutomaticPortForwarding, LifecyclePhase.Eventually); workbenchContributionsRegistry.registerWorkbenchContribution(RemoteMarkers, LifecyclePhase.Eventually); <del> workbenchContributionsRegistry.registerWorkbenchContribution(RemoteStartEntry, LifecyclePhase.Starting); </del> <ins> workbenchContributionsRegistry.registerWorkbenchContribution(RemoteStartEntry, LifecyclePhase.Restored); </ins>

Discussion:
Code-OSS dev tools :bug: see (note that I see this even if I do not have the start entry enabled in settings) IMHO this contribution does not need to appear in , because it appears in the Welcome page, which only kicks in on . I would suggest to also instantiate RemoteStartEntry in .
Like the idea
This is a good find , can we get this out for April? We should put startup perf improvements always in as soon as possible.
ping
Thanks!
Change:
} const { installSourcePath } = this.environmentMainService; <del> const machineId = await resolveMachineId(this.stateService); </del> <ins> const machineId = await resolveMachineId(this.stateService, this.logService); </ins> const config: ITelemetryServiceConfig = { appenders,

Discussion:
When fails to get a mac address it still returns a generated mac id, but uses to log the error. That's a bit risky as it rely on VS Code to already have installed a . The default handler throws an exception in a timeout that can crash the process. (see issue ) IMO the better way would be to pass a logger to , e.g. the -move to -add to
if you support the idea I can provide a PR
that all sounds fine to me, thanks for looking into this. I didn't know this could cause a crash since it had been in desktop for so long.
Change:
})); } <ins> if (alreadyRequestedInstallations.length) { await this.joinAllSettled(alreadyRequestedInstallations); } </ins> installResults.forEach(({ identifier }) => this.logService.info(`Extension installed successfully:`, identifier.id)); this._onDidInstallExtensions.fire(installResults); return installResults.filter(({ identifier }) => areSameExtensions(identifier, installExtensionTask.identifier))[0].local;

Discussion:
VS Code Version: stable and from sources When launching the server and installing extensions using that have a common dependency, one of the extensions will fail activating, prompting to reload VS Code. For example installing, and contains which depends on also depends on installation task finishes first and then trying to activate fails as for installation which is part of installation task Steps to Reproduce: this branch in gitpod or codespaces will fail activating and a notification shows prompting to reload vscode <img width="448" alt="error_iamge" src="https://user-"cc
would you accept a PR fixing this? I took a look but it doesn't look something trivial to fix properly, I but I don't think is a good fix
PR would be always welcome. Agreed it is not trivial. Let's see if there is a simple fix that fixes this and won't cause any regressions.
Created a PR with a possible fix
ping, by any chance for July
I am sorry that I am on vacation so cannot be looked in July.
I was following this other , but it was marked as a duplicate and was therefore closed. This isse seems to be closed as well, although the issue persists. Specifically, it seems that VS Code Dev Containers installs extensions in alphabetical order, so that if an extension that comes later in the order is a pre-requisite for another that is earlier, then the installations will not behave as expected. Example, is a pre-requisite for , but comes later in alphabetical order. Thus, requires a VS Code Session restart after building the Dev Container. Is this issue fixed in VS Code Insiders, but not released yet?
The issue you reported is using the build 1.71. and this fix was pushed in 1.72.. So please update your VS Code and try.
Change:
this.input.setAttribute('autocorrect', 'off'); this.input.setAttribute('autocapitalize', 'off'); this.input.setAttribute('spellcheck', 'false'); <ins> this.disposables.push( dom.addDisposableListener(this.input, dom.EventType.FOCUS, () => dom.addClass(this.element, 'synthetic-focus')), dom.addDisposableListener(this.input, dom.EventType.BLUR, () => dom.removeClass(this.element, 'synthetic-focus'))); </ins> if (this.options.flexibleHeight) { this.mirror = dom.append(wrapper, $('div.mirror'));

Discussion:
Right now, this sort of ruins the feeling of an input with options -- it becomes more like an input followed by some toggles ! -- if you have the time
! there you go
I made you a reviewer
Nice solution. Merged.
Change:
}); } }); <del> const remotes = getDomainsOfRemotes(content.value.toString(), keys(recommendationByRemote)); remotes.forEach(remote => result.push(recommendationByRemote.get(remote)!)); </del> <ins> const domains = getDomainsOfRemotes(content.value.toString(), keys(recommendationByRemote)); for (const domain of domains) { const remote = recommendationByRemote.get(domain); if (remote) { result.push(remote); } } </ins> } catch (error) { /* Ignore */ } } return result;

Discussion:
Issue Id: <-7afa-11a3-927f-</b<br /<br /Versions <br /- 1.45.0<br /Stack <br /TypeError: Cannot read property 'important' of undefined<br /)<br /at processTicksAndRejections ()<br /<br /at async (index 2)<br /<br /
Change:
if (!Array.isArray(storedProfileExtensions)) { throw new Error(`Invalid extensions content in ${file.toString()}`); } <ins> // TODO @sandy081: Remove this migration after couple of releases let migrate = false; </ins> for (const e of storedProfileExtensions) { if (!isStoredProfileExtension(e)) { throw new Error(`Invalid extensions content in ${file.toString()}`); } <ins> let location: URI; if (isString(e.location)) { location = this.resolveExtensionLocation(file, e.location); } else { location = URI.revive(e.location); const relativePath = this.toRelativePath(file, location); if (relativePath) { migrate = true; e.location = relativePath; } } </ins> extensions.push({ identifier: e.identifier, <del> location: URI.revive(e.location), </del> <ins> location, </ins> version: e.version, metadata: e.metadata, }); } <ins> if (migrate) { await this.fileService.writeFile(file, VSBuffer.fromString(JSON.stringify(storedProfileExtensions))); } </ins> } // Update

Discussion:
Type: <bBug</bThe experimental "user profiles" feature uses absolute paths which break when using a (which is done by creating a "data/" folder in VSC's root directory). These paths seem to be stored in "data/user-", at least in part. This makes VSC forget any extensions installed on the default profile as well as any other profiles. It also prevents VSC from finding the settings for any non-default profiles: When trying to edit the settings for a non-default profile, a new "" file is created where VSC expects the file to be. It displays an error message instead if the expected path is invalid (ex. portable installation's drive letter changed). Steps to Reproduce: a portable (.zip) version of VSCode and extract to a folder. an empty "data/" folder inside that folder. VSC and install any extension with the default profile. a second profile. Change some of its settings and install any extension. VSC and move the VSC folder to another location. VSC again. VS Code version: Code - Insiders 1.74.0-insider (, 2022-11-03T18:43:35.409Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: Yes <details<summarySystem Info</summary </detailsExtensions: none<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Change:
order: 8, command: { id: CUT_FILE_ID, <del> title: nls.localize('cut', "Cut") </del> <ins> title: nls.localize('cut', "Cut"), precondition: WorkbenchTreeFindOpen.toNegated() </ins> }, when: ContextKeyExpr.and(ExplorerRootContext.toNegated(), ExplorerResourceNotReadonlyContext) });

Discussion:
Sometimes "Paste" fails: The file(s) to paste have been deleted or moved since you copied them. TreeError [FileExplorer] Tree element not found: [object Object] Maybe should be disabled for as long as we do not update properly.
Change:
this.uris = coalesce(rawBuffer.map(uriFromRawUrl)); if (isWindows) { <del> app.setAsDefaultProtocolClient(product.urlProtocol, process.execPath, ['--open-url', '--']); </del> <ins> const windowsParameters = environmentService.isBuilt ? [] : [`"${environmentService.appRoot}"`]; windowsParameters.push('--open-url', '--'); app.setAsDefaultProtocolClient(product.urlProtocol, process.execPath, windowsParameters); </ins> } const onOpenElectronUrl = Event.map(

Discussion:
Issue Type: <bBug</bcode-oss on windows into the browser and click "Open" in resulting dialog ! Works on Mac still, haven't tried Linux VS Code version: Code - OSS Dev 1.41.0 (Commit unknown, Date unknown) OS version: Windows_NT x64 10.0. <!-- generated by issue reporter --
Hi, I have tracked this down to ! It seems that when you run Code - , the command is missing: ! By hardcoding my vscode folder location in: ! The app is able to open: ! Is there a command/utility function that will give this location?
Bingo! You should add this to the array only if not .
Verification: This is a Windows only issue.
Change:
constructor() { super({ id: 'merge.toggleActiveConflictInput1', <del> title: localize('merge.toggleActiveConflictInput1', "Merge Editor: Toggle Active Conflict In Input 1"), </del> <ins> category: localize('mergeEditor', "Merge Editor"), title: localize('merge.toggleActiveConflictInput1', "Toggle Active Conflict In Input 1"), </ins> f1: true, }); }

Discussion:
While working on I noticed that some of the UI elements (and maybe other things?) are not registered as disposable, and thus may leak when the merge editor is freed from an editor group that closes. For example the and all input views seem to not dispose.
Hm, I think also the merge model, I suggest to do a pass and register as appropiate.
Change:
persistent: boolean; /** <ins> * A description for the environment variable collection, this will be used to describe the * changes in the UI. */ description: string | MarkdownString | undefined; /** </ins> * Replace an environment variable with a value. * * Note that an extension can only make a single change to any one variable, so this will

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. --Particularly for the Python environments, the list of environment vars can be long, hence the prompt which shows up can be too verbose: ! It would be perhaps more helpful if we can provide a simple description instead of the exact changes. cc/
This could also be extended to show up as the first time the terminal is relaunched. Fish shell does not have a prompt variable which we could set like cmd to indicate which environment is active, which could also make use of this feature: !
Proposal: We probably still want a way to show the actual environment variable changes even with this description though.
It would be nice if there were a action that opened a readonly editor with the changes. That would make it very accessible
I was thinking a button in the hover to toggle it, but I like your suggestion more
Feedback from API sync: Add
My only concern here is we're putting the description into a markdown list which a could mess up the UI. We might want to either modify the description such that it's indented correctly to show up in a list item (1) or only take the description before the first (2): For the description: 1: 2:
+1 for the second option to start with, as we expect the description to be concise. Personally I would only use Markdown to support backticks.
Just realized description would be different for each scope, so proposal needs to be updated: Blocked on
Is there a way to open a readonly editor rather than a untitled buffer? ! Here's the code which currently opens it:
Yes, you should do something similar to https://user-
Great, thanks! !
Looks like , , and are all very closely related. For a holistic view at the changes a single discussion/issue/proposal might be more beneficial.
created:
Closing in favor of as these issues were only open to finalize proposed API.
they're all separate proposals, let's keep them open and have for a holistic view
I'm planning on finalizing this one independently of the workspace scope one this iteration.
To verify make sure the API shows up in the stable API and does not have a proposed check.

Tried this, not sure what I need to do to get this to work I just updated the description property in the and created a new terminal and nothing seems to be displayed. Am i missing a step here?
Change:
} private async onDidClickPreview(line: number): Promise<void> { <ins> // fix #82457, find currently opened but unfocused source tab await vscode.commands.executeCommand('markdown.showSource'); </ins> for (const visibleEditor of vscode.window.visibleTextEditors) { if (this.isPreviewOf(visibleEditor.document.uri)) { const editor = await vscode.window.showTextDocument(visibleEditor.document, visibleEditor.viewColumn);

Discussion:
<!-- 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.39.1 OS Version: Fedora 30 Steps to Reproduce: a markdown file the Mardown preview on the side (<kbdCtrl+k v</kbd). This opens a Markdow preview tab, in a new tabs group at the right of the window. the focus to the left tabs group, by clicking inside the markdow file (source) another file (<kbdCtrl+o</kbd). This opens a new tab in the left tabs group. -click on a line of text in the Markdown preview This opens a new tab, in the right tabs group, to show the Markdow source. It should have focused the existing tab, in the left tabs group. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
Change:
stepElement.classList.add('expanded'); stepElement.setAttribute('aria-expanded', 'true'); this.buildMediaComponent(id); <del> this.gettingStartedService.progressByEvent('stepSelected:' + id); </del> <ins> this.gettingStartedService.progressStep(id); </ins> } else { this.editorInput.selectedStep = undefined; }

Discussion:
As explored in , I think the walkthrough experience could have less friction if steps were checked off once viewed rather than waiting for the user to actually perform the specific action. https://user- We could even think about removing the "checkbox" metaphor and instead only listening for a view event.
Here is a previously related conversation around walkthrough checkboxes:
Change:
width: 100%; opacity: 1 !important; /* Settings editor uses opacity < 1 */ overflow: hidden; <ins> /* TODO@benibenj temporary solution, all lists should provide their background */ background-color: var(--vscode-sideBar-background); </ins> } .monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{

Discussion:
Type: <bBug</bTree sticky scroll is not showing properly in test explorer Looks like it doesn't have this background color property set to it which is there in Explorer but then I wonder if this is applicable to extensions contributed lists then wouldn't it break the UI for extension list after enabling the tree sticky scroll setting which don't have this property set. ! settings enabled. "": true, "testExplorer.useNativeTesting": true, ! VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-22T05:35:23.085Z) 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.17 svg-gallery2.1.0 console-log0.6.2 gitlens2023.11.2204 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 --
Testing tree is not providing it's background which it actually should. Created a temporary solution to ensure sticky scroll works in all trees. Currently working on a long term solution to ensure each tree will have the right background color
Change:
this.searchWidget.setValue(query.trim()); } <del> clearSearch(): void { this.clearSearchResults(); this.focusSearch(); } </del> private createHeader(parent: HTMLElement): void { this.headerContainer = DOM.append(parent, $('.settings-header')); const searchContainer = DOM.append(this.headerContainer, $('.search-container')); <del> const clearInputAction = new Action(SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, localize('clearInput', "Clear Settings Search Input"), 'codicon-clear-all', false, () => { this.clearSearch(); return Promise.resolve(null); }); </del> <ins> const clearInputAction = new Action(SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, localize('clearInput', "Clear Settings Search Input"), 'codicon-clear-all', false, () => { this.clearSearchResults(); return Promise.resolve(null); }); </ins> const searchBoxLabel = localize('SearchSettings.AriaLabel', "Search settings"); this.searchWidget = this._register(this.instantiationService.createInstance(SuggestEnabledInput, `${SettingsEditor2.ID}.searchbox`, searchContainer, {

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --Currently the 'focusSearch' method is called directly after the 'clearSearchResults' method returns. I think they should be called in one function as they get called one after another anyways and effect the same widget. I propose to add the 'focus search' method to the code below.. Also.. there's an extra 'clear search' function in the settings editor that can be replaced by this code. <!-- Describe the feature you'd like. --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.508 --- <!-- score: 0.498 --<!-- potentialduplicatescomment --