jiebi/CodeConvo huggingface dataset:
Change:
Same as when opening a diff editor, a merge editor should offer a way to open the regular file (not in 3 way merge mode). Same as diff editor it could use an action in the editor title area !
Let's move this to July
To verify: open a merge editor verify its title bar has a command to open the result file
I wonder if "Open Changes" button should go back to the merge editor then? !

Discussion:
original: 'Merge Editor', }; <ins> export class OpenResultResource extends Action2 { constructor() { super({ id: 'merge.openResult', icon: Codicon.goToFile, title: { value: localize('openfile', 'Open File'), original: 'Open File', }, category: mergeEditorCategory, menu: [{ id: MenuId.EditorTitle, when: ctxIsMergeEditor, group: 'navigation', order: 1, }], precondition: ctxIsMergeEditor, }); } async run(accessor: ServicesAccessor): Promise<void> { const opener = accessor.get(IOpenerService); const { activeEditor } = accessor.get(IEditorService); if (activeEditor instanceof MergeEditorInput) { await opener.open(activeEditor.result); } } } </ins> export class GoToNextConflict extends Action2 { constructor() { super({

id: MenuId.EditorTitle, when: ctxIsMergeEditor, group: 'navigation', <ins> order: 3 </ins> }, ], f1: true,

id: MenuId.EditorTitle, when: ctxIsMergeEditor, group: 'navigation', <ins> order: 2 </ins> }, ], f1: true,

import { EditorPaneDescriptor, IEditorPaneRegistry } from 'vs/workbench/browser/editor'; import { Extensions as WorkbenchExtensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions'; import { EditorExtensions, IEditorFactoryRegistry } from 'vs/workbench/common/editor'; <del> import { CompareInput1WithBaseCommand, CompareInput2WithBaseCommand, GoToNextConflict, GoToPreviousConflict, OpenBaseFile, OpenMergeEditor, SetColumnLayout, SetMixedLayout, ToggleActiveConflictInput1, ToggleActiveConflictInput2 } from 'vs/workbench/contrib/mergeEditor/browser/commands/commands'; </del> <ins> import { CompareInput1WithBaseCommand, CompareInput2WithBaseCommand, GoToNextConflict, GoToPreviousConflict, OpenBaseFile, OpenMergeEditor, OpenResultResource, SetColumnLayout, SetMixedLayout, ToggleActiveConflictInput1, ToggleActiveConflictInput2 } from 'vs/workbench/contrib/mergeEditor/browser/commands/commands'; </ins> import { MergeEditorCopyContentsToJSON, MergeEditorOpenContents } from 'vs/workbench/contrib/mergeEditor/browser/commands/devCommands'; import { MergeEditorInput } from 'vs/workbench/contrib/mergeEditor/browser/mergeEditorInput'; import { MergeEditor, MergeEditorOpenHandlerContribution } from 'vs/workbench/contrib/mergeEditor/browser/view/mergeEditor';

MergeEditorSerializer ); <ins> registerAction2(OpenResultResource); </ins> registerAction2(SetMixedLayout); registerAction2(SetColumnLayout); registerAction2(OpenMergeEditor);
Change:
I don't see why the "Debug: Evaluate in Debug Console" command can't be a parallel of the "Terminal: Run Selected Text In Active Terminal" command, which, when no text is selected, sends the full current line. This is how most evaluate-and-run environments work (Jupyter notebooks, RStudio, Matlab), and it would be great to have that feature during debugging. As long as someone is updating this command, it would be great to add an called something like so that when you use the command to send a line of code, the editor also advances the current line (again, this is a UX element that Jupyter, RStudio, and Matlab are built around). Originally posted by in

Discussion:
registerDebugCommandPaletteItem(JUMP_TO_CURSOR_ID, { value: nls.localize('jumpToCursor', "Jump to Cursor"), original: 'Jump to Cursor' }, CONTEXT_JUMP_TO_CURSOR_SUPPORTED); registerDebugCommandPaletteItem(JUMP_TO_CURSOR_ID, { value: nls.localize('SetNextStatement', "Set Next Statement"), original: 'Set Next Statement' }, CONTEXT_JUMP_TO_CURSOR_SUPPORTED); registerDebugCommandPaletteItem(RunToCursorAction.ID, { value: RunToCursorAction.LABEL, original: 'Run to Cursor' }, ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, CONTEXT_DEBUG_STATE.isEqualTo('stopped'))); <del> registerDebugCommandPaletteItem(SelectionToReplAction.ID, { value: SelectionToReplAction.LABEL, original: 'Evaluate in Debug Console' }, ContextKeyExpr.and(EditorContextKeys.hasNonEmptySelection, CONTEXT_IN_DEBUG_MODE)); </del> <ins> registerDebugCommandPaletteItem(SelectionToReplAction.ID, { value: SelectionToReplAction.LABEL, original: 'Evaluate in Debug Console' }, CONTEXT_IN_DEBUG_MODE); </ins> registerDebugCommandPaletteItem(SelectionToWatchExpressionsAction.ID, { value: SelectionToWatchExpressionsAction.LABEL, original: 'Add to Watch' }, ContextKeyExpr.and(EditorContextKeys.hasNonEmptySelection, CONTEXT_IN_DEBUG_MODE)); registerDebugCommandPaletteItem(TOGGLE_INLINE_BREAKPOINT_ID, { value: nls.localize('inlineBreakpoint', "Inline Breakpoint"), original: 'Inline Breakpoint' }); registerDebugCommandPaletteItem(DEBUG_START_COMMAND_ID, DEBUG_START_LABEL, ContextKeyExpr.and(CONTEXT_DEBUGGERS_AVAILABLE, CONTEXT_DEBUG_STATE.notEqualsTo(getStateLabel(State.Initializing))));

id: SelectionToReplAction.ID, label: SelectionToReplAction.LABEL, alias: 'Debug: Evaluate in Console', <del> precondition: ContextKeyExpr.and(EditorContextKeys.hasNonEmptySelection, CONTEXT_IN_DEBUG_MODE, EditorContextKeys.editorTextFocus), </del> <ins> precondition: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, EditorContextKeys.editorTextFocus), </ins> contextMenuOpts: { group: 'debug', order: 0

return; } <del> const text = editor.getModel().getValueInRange(editor.getSelection()); </del> <ins> const selection = editor.getSelection(); let text: string; if (selection.isEmpty()) { text = editor.getModel().getLineContent(selection.selectionStartLineNumber).trim(); } else { text = editor.getModel().getValueInRange(selection); } </ins> await session.addReplExpression(viewModel.focusedStackFrame!, text); await viewsService.openView(REPL_VIEW_ID, false); }
Change:
<!-- 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/69-insider OS Version: Windows 11 Steps to Reproduce: user file in timeline view :bug: see timeline entries from 52 years ago !
Is this reproducible or a one-off?
Looks like the file system provider that is implemented for is not implementing properly, I see a value of : <img width="851" alt="image" src="https://user-"Moving to

Discussion:
private readonly _onReportError = this._register(new Emitter<IndexedDBFileSystemProviderErrorData>()); readonly onReportError = this._onReportError.event; <del> private readonly versions = new Map<string, number>(); </del> <ins> private readonly mtimes = new Map<string, number>(); </ins> private cachedFiletree: Promise<IndexedDBFileSystemNode> | undefined; private writeManyThrottler: Throttler;

return { type: FileType.File, ctime: 0, <del> mtime: this.versions.get(resource.toString()) || 0, </del> <ins> mtime: this.mtimes.get(resource.toString()) || 0, </ins> size: entry.size ?? (await this.readFile(resource)).byteLength }; }

} await this.deleteKeys(toDelete); (await this.getFiletree()).delete(resource.path); <del> toDelete.forEach(key => this.versions.delete(key)); </del> <ins> toDelete.forEach(key => this.mtimes.delete(key)); </ins> this.triggerChanges(toDelete.map(path => ({ resource: resource.with({ path }), type: FileChangeType.DELETED }))); }

const fileTree = await this.getFiletree(); for (const [resource, content] of files) { fileTree.add(resource.path, { type: 'file', size: content.byteLength }); <del> this.versions.set(resource.toString(), (this.versions.get(resource.toString()) || 0) + 1); </del> <ins> this.mtimes.set(resource.toString(), Date.now()); </ins> } this.triggerChanges(files.map(([resource]) => ({ resource, type: FileChangeType.UPDATED })));
Change:
Testing
Fixed with
Verification steps: Launch the latest VS Code Insiders Open a folder/workspace that contains a git repository Ensure that the setting is enabled Ensure that all three properties of the setting are enabled Use the setting to enable branch protection for the current branch Make a change to a file: Confirm that the "Commit" action button is shown and it has the codicon Set the setting to Confirm that the "Commit" action button is shown and it has the codicon
not sure what I'm doing wrong, but this doesn't seem to work for me (not getting the codicon). See below. Version: 1.70.0-insider (Universal) Commit: Date: 2022-07-26T05:17:37.262Z Electron: 18.3.5 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: Darwin arm64 21.5.0 !
this looks like a regression. Re-opening the bug.

Discussion:
} // Commit <del> let commandArg = ''; let title = localize('scm button commit title', "{0} Commit", '$(check)'); let tooltip = this.state.isCommitInProgress ? localize('scm button committing tooltip', "Committing Changes...") : localize('scm button commit tooltip', "Commit Changes"); </del> const config = workspace.getConfiguration('git', Uri.file(this.repository.root)); const postCommitCommand = config.get<string>('postCommitCommand');

// Icon const icon = alwaysPrompt ? '$(lock)' : alwaysCommitToNewBranch ? '$(git-branch)' : undefined; <ins> let commandArg = ''; let title = localize('scm button commit title', "{0} Commit", icon ?? '$(check)'); let tooltip = this.state.isCommitInProgress ? localize('scm button committing tooltip', "Committing Changes...") : localize('scm button commit tooltip', "Commit Changes"); </ins> // Title, tooltip switch (postCommitCommand) { case 'push': {
Change:
Create two profiles In one profile install latest version of an extension and in another install older version of the same extension Restart VS Code Lower version is getting removed This bug impacts other way around when Profiles are disabled: If you have two different versions of same extension in the disk, then the extension clean up does not remove the older version. I believe user can only end up in this state if user has manually copied the older version into the disk otherwise I assume VS Code handles it.
It seems I cannot reproduce this anymore.
Hmm I could see this happen today after restarting - but it is not due to auto update, seems like older versions are being removed. Hence reopening
We agreed to take this into June given that this can impact when profiles are disabled. Hence moving this back to June.

Discussion:
) { super(); <del> extensionManagementService.removeUninstalledExtensions(this.userDataProfilesService.profiles.length > 1); </del> <ins> extensionManagementService.removeUninstalledExtensions(this.userDataProfilesService.profiles.length === 0); </ins> migrateUnsupportedExtensions(extensionManagementService, extensionGalleryService, extensionStorageService, extensionEnablementService, logService); ExtensionStorageService.removeOutdatedExtensionVersions(extensionManagementService, storageService); this._register(instantiationService.createInstance(ProfileExtensionsCleaner));
Change:
Repro: Windows open test resolver window folder everything except !
I'm not able to reproduce this, even when I select the entire series of subfolders before before deleting. Is this on a VM?
No folder, just test resolver. It's an easy repro for me: ! Code - OSS about: Version: 1.69.0 Commit: Unknown Date: Unknown Electron: 18.3.5 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: Windows_NT x64 10.0.
Your slashes are going the wrong way, which is suspicious. How do you launch Code - OSS?
and then new test resolver window command
I've repro'd the slashes, but nothing I try will cause the missing directories to repro. Only difference I see is that I am on Windows 11 and you are on 10. Can you try swapping the separator on the resource label formatter? If that doesn't resolve it then we'll set up some time to debug.
I'm on Windows 11 too, 21H2, .739
Regardless of the value above it doesn't work for both and . Is there anywhere of interest I can debug into? Where does the trigger character code live?
We debugged into this together, seems related to the being (or ) and not
After our debugging yesterday this started to feel familiar:

Discussion:
return this.remoteUriFrom(value); } <ins> private tryAddTrailingSeparatorToDirectory(uri: URI, stat: IFileStatWithPartialMetadata): URI { if (stat.isDirectory) { // At this point we know it's a directory and can add the trailing path separator if (!this.endsWithSlash(uri.path)) { return resources.addTrailingPathSeparator(uri); } } return uri; } </ins> private async tryUpdateItems(value: string, valueUri: URI): Promise<UpdateResult> { if ((value.length > 0) && (value[0] === '~')) { const newDir = this.tildaReplace(value);

// do nothing } if (stat && stat.isDirectory && (resources.basename(valueUri) !== '.') && this.endsWithSlash(value)) { <ins> valueUri = this.tryAddTrailingSeparatorToDirectory(valueUri, stat); </ins> return await this.updateItems(valueUri) ? UpdateResult.UpdatedWithTrailing : UpdateResult.Updated; } else if (this.endsWithSlash(value)) { // The input box contains a path that doesn't exist on the system.

} if (statWithoutTrailing && statWithoutTrailing.isDirectory) { this.badPath = undefined; <del> // At this point we know it's a directory and can add the trailing path separator if (!this.endsWithSlash(inputUriDirname.path)) { inputUriDirname = resources.addTrailingPathSeparator(inputUriDirname); } </del> <ins> inputUriDirname = this.tryAddTrailingSeparatorToDirectory(inputUriDirname, statWithoutTrailing); </ins> return await this.updateItems(inputUriDirname, false, resources.basename(valueUri)) ? UpdateResult.UpdatedWithTrailing : UpdateResult.Updated; } }
Change:
a display language e.g. pseudolang for the edit sessions commands or the settings sync: turn on command in English (fyi :bug: commands don't show up This is because all actions which are registered via and which use a pre-localized string for the title instead of only get the localized string displayed in the command palette We probably shouldn't allow the use of here for actions which are contributed to the command palette
---------- The property AND the property should not be set to a and should be set to an :
Here's why.. The edit session ones don't use ILocalizedString so they appear as just pseudolang. The other two do use ILocalizedString so the English string shows up underneath. <img width="499" alt="image" src="https://user-"We do this so users can still use the English command if they find it on StackOverflow or other places.
This is very subtle. I suggest to change to
I am planning on doing that once we get through some of these. It's a little more complicated because only the ones that use need to be an . If you are targeting something else with this action, like the file/edit/view menu, then the doesn't really do much... so I'll have to do some fun stuff with types (which I did in order to generate this list in the first place).
These changes could probable be done with a clever regex. Though I also kind of want a "code transformation notebook" that would let me write a function that operates on the TS AST and is easily applied throughout the codebase.
maybe even a tree-sitter notebook?
Maybe a project for the long weekend if I finally finish building my dining table...
Feel free to cross yourself off and unassign when done.
verification: I've already checked all of the commands except for the one I just fixed... so all you have to do is: wait for tomorrow's insiders change to any language pack seach for in the command palette ensure that it has the translated string and the English string

Discussion:
constructor() { super({ id: TestCommandId.ConfigureTestProfilesAction, <del> title: localize('testing.configureProfile', 'Configure Test Profiles'), </del> <ins> title: { value: localize('testing.configureProfile', 'Configure Test Profiles'), original: 'Configure Test Profiles' }, </ins> icon: icons.testingUpdateProfiles, f1: true, category,
Change:
Reported by Possibly related to already being signed into settings sync with GitHub auth
Lmk if you need anything from me
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Seems to be because I need to use the idToken instead of the accessToken?
Yep. Settings Sync uses the and not the . Sorry I should have told you that
how can I verify this / what was the repro?
steps are just "use Microsoft account with edit sessions" and it works. Verified!

Discussion:
const existing = await this.getExistingSession(); if (existing !== undefined) { this.logService.trace(`Found existing authentication session with ID ${existingSessionId}`); <del> this.#authenticationInfo = { sessionId: existing.session.id, token: existing.session.accessToken, providerId: existing.session.providerId }; </del> <ins> this.#authenticationInfo = { sessionId: existing.session.id, token: existing.session.idToken ?? existing.session.accessToken, providerId: existing.session.providerId }; </ins> this.storeClient.setAuthToken(this.#authenticationInfo.token, this.#authenticationInfo.providerId); return true; }

// Ask the user to pick a preferred account const session = await this.getAccountPreference(); if (session !== undefined) { <del> this.#authenticationInfo = { sessionId: session.id, token: session.accessToken, providerId: session.providerId }; </del> <ins> this.#authenticationInfo = { sessionId: session.id, token: session.idToken ?? session.accessToken, providerId: session.providerId }; </ins> this.storeClient.setAuthToken(this.#authenticationInfo.token, this.#authenticationInfo.providerId); this.existingSessionId = session.id; this.logService.trace(`Saving authentication session preference for ID ${session.id}.`);
Change:
Testing With the pseudolanguage pack, on an open folder with no initialized repository, the links in the SCM viewlet do not render properly: !
this is what I see in today's Insiders release (2022-07-06): <img width="411" alt="image" src="https://user-"Looks like the buttons appear correctly, though it looks like the icon in the "Publish to GitHub" button has been translated.
what would be the best way to indicate in a file that the icon should not be translated. I see that there is already a pattern to indicate that the should not be translated. Can we establish something similar for icons as well?
you can add more comments that lock the icons as well:

Discussion:
"welcome.publishFolder": { "message": "You can also directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by git and GitHub.n[$(github) Publish to GitHub](command:github.publish)", "comment": [ <ins> "{Locked='$(github)'}", "Do not translate '$(github)'. It will be rendered as an icon", </ins> "{Locked='](command:github.publish'}", "Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code", "Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"

"welcome.publishWorkspaceFolder": { "message": "You can also directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by git and GitHub.n[$(github) Publish to GitHub](command:github.publish)", "comment": [ <ins> "{Locked='$(github)'}", "Do not translate '$(github)'. It will be rendered as an icon", </ins> "{Locked='](command:github.publish'}", "Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code", "Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
Change:
<!-- 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 (but requires an extension for the repro) <!-- 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.68.1 or the latest Insiders. OS Version: Windows (I assume others too) Steps to Reproduce: some extension. to an older version of the extension. Bug: If the Extensions pane is not wide enough, the "Reload Required" UI is not visible, which makes it easy for users to mistakenly believe that no reload was required and that it's using the downgraded version already, when it is not. ! Suggested fix: Render the "Reload Required" button with higher precedence and/or on the left of the "Upgrade to" button and/or render it below, etc. -- or maybe don't render the "Upgrade to" button yet until the Reload is done.

Discussion:
const actions = [ this.instantiationService.createInstance(ExtensionStatusLabelAction), this.instantiationService.createInstance(MigrateDeprecatedExtensionAction, true), <del> this.instantiationService.createInstance(UpdateAction), </del> reloadAction, <ins> this.instantiationService.createInstance(UpdateAction), </ins> this.instantiationService.createInstance(InstallDropdownAction), this.instantiationService.createInstance(InstallingLabelAction), this.instantiationService.createInstance(SetLanguageAction),