jiebi/CodeConvo huggingface dataset:
Change:
} else if (isSCMResourceGroup(element)) { return element.label; } else if (isSCMHistoryItemGroupTreeElement(element)) { <del> return `${stripIcons(element.label).trim()}${element.description ? `, ${element.description}` : ''}`; </del> <ins> return element.ariaLabel ?? `${element.label.trim()}${element.description ? `, ${element.description}` : ''}`; </ins> } else if (isSCMHistoryItemTreeElement(element)) { return `${stripIcons(element.label).trim()}${element.description ? `, ${element.description}` : ''}`; } else if (isSCMHistoryItemChangeTreeElement(element)) {

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:
})); this._register(addDisposableListener(this.window, EventType.RESIZE, () => { <del> const dimension = getClientArea(this.window.document.body); </del> <ins> const dimension = getClientArea(this.window.document.body, this.container); </ins> position(this.container, 0, 0, 0, 0, 'relative'); size(this.container, dimension.width, dimension.height);

Discussion:
In web opening an aux window results in an exception.
Works fine for me now - only thing is that new copied windows don't have codicons. ! Also, was testing behavior vs. what we have on desktop in insiders, and noticed that on web we cannot copy a copied window, but not sure if this is intended or if it's even needed in real life scenarios. !
Yeah you have to disable popup blockers in web. I can see if we get the icon to work.
Change:
}): Disposable; } //#endregion <ins> //#region export interface FileSystem { /** * Check if a given file system supports writing files. * * Keep in mind that just because a file system supports writing, that does * not mean that writes will always succeed. There may be permissions issues * or other errors that prevent writing a file. * * @param scheme The scheme of the filesystem, for example `file` or `git`. * * @return `true` if the file system supports writing, `false` if it does not * support writing (i.e. it is readonly), and `undefined` if VS Code does not * know about the filesystem. */ isWritableFileSystem(scheme: string): boolean | undefined; } //#endregion </ins> }

Discussion:
Refs: A text document can be readonly if it's underlying file system provider is readonly. I am not sure how a custom editor implementor can figure this out and provide the correct experience.
Could we add a property to ? Does VS Code internally already know if a given textDocument is read only?
We basically ask the file system provider for the resource of the document for being readonly or not. That should be doable.
Change:
case 'rating': options = assign(options, { sortBy: SortBy.WeightedRating }); break; case 'name': options = assign(options, { sortBy: SortBy.Title }); break; } <del> if (!query || !query.trim()) { options.sortBy = SortBy.InstallCount; } </del> const successCallback = model => { this.setModel(model);

Discussion:
Issue Type: <bBug</bSee below screenshot, it is not sorted by install count: ! VS Code version: Code 1.28.0 (, 2018-10-05T14:58:53.203Z) OS version: Windows_NT x64 10.0.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.5 --- <!-- score: 0.458 --- <!-- score: 0.446 --<!-- potentialduplicatescomment --
Change:
"If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], <del> "version": "https://github.com/atom/language-php/commit/72739e6341b1b4bf4aa185e928932983baca449e", </del> <ins> "version": "https://github.com/atom/language-php/commit/5fae657cf989701e9594912772daff33249839b3", </ins> "scopeName": "source.php", "patterns": [ {

Discussion:
VS Code Version: 1.52.1 Steps to Reproduce: !
at line number 20-23 syntax is wrong
That code runs correctly in PHP 8 ().
The syntax highlight is broken when you use an attribute and write code in the same line (method1) but also is incorrect when you write code in a param (method2) or you use line break (method3).
Noticed that this is better in the latest version of vscode, but they are missing tokens to be fully colored. Filed
Change:
} } <del> private _runRestartTaskCommand(arg?: any): void { const runQuickPick = (promise?: Promise<Task[]>) => { this._showQuickPick(promise || this.getActiveTasks(), </del> <ins> private async _runRestartTaskCommand(arg?: any): Promise<void> { const activeTasks = await this.getActiveTasks(); if (activeTasks.length === 1) { this._restart(activeTasks[0]); return; } if (this.inTerminal()) { // try dispatching using task identifier const identifier = this._getTaskIdentifier(arg); if (identifier !== undefined) { for (const task of activeTasks) { if (task.matches(identifier)) { this._restart(task); return; } } } // show quick pick with active tasks const entry = await this._showQuickPick( activeTasks, </ins> nls.localize('TaskService.taskToRestart', 'Select the task to restart'), { label: nls.localize('TaskService.noTaskToRestart', 'No task to restart'), task: null }, <del> false, true ).then(entry => { const task: Task | undefined | null = entry ? entry.task : undefined; if (task === undefined || task === null) { return; } this._restart(task); }); }; if (this.inTerminal()) { const identifier = this._getTaskIdentifier(arg); let promise: Promise<Task[]>; if (identifier !== undefined) { promise = this.getActiveTasks(); promise.then((tasks) => { for (const task of tasks) { if (task.matches(identifier)) { this._restart(task); return; } } runQuickPick(promise); }); } else { runQuickPick(); </del> <ins> false, true ); if (entry && entry.task) { this._restart(entry.task); </ins> } } else { <del> this.getActiveTasks().then((activeTasks) => { if (activeTasks.length === 0) { return; } const task = activeTasks[0]; this._restart(task); }); </del> <ins> if (activeTasks.length > 0) { this._restart(activeTasks[0]); } </ins> } }

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. --
Change:
const outputs = output.items .filter((opit) => opit.mime === CellOutputMimeTypes.stderr || opit.mime === CellOutputMimeTypes.stdout) .map((opit) => convertOutputMimeToJupyterOutput(opit.mime, opit.data as Uint8Array) as string) <del> .reduceRight<string[]>((prev, curr) => (Array.isArray(curr) ? prev.concat(...curr) : prev.concat(curr)), []); </del> <ins> .reduceRight<string[]>((prev, curr) => prev.concat(curr), []); </ins> const streamType = getOutputStreamType(output) || 'stdout';

Discussion:
Issue Type: <bBug</bI was working on a notebook with lots of print output for debugging. 10min in, I could not save and got a notification of "Maximum call stack size exceeded". ! The kernel script was still running and printing hefty objects in a loop. I remember once crashing VS Code with long notebook output, so maybe this is related. Console log: Extension version: 2021.8. VS Code version: Code - Insiders 1.59.0-insider (, 2021-07-22T05:13:00.851Z) OS version: Darwin x64 20.5.0 Restricted Mode: No Remote OS version: Linux x64 5.10.25-linuxkit Fetching remote diagnostics for 'dev-container+7b22686f737450617468223a222f55736572732f64696769746172616c642f7265706f732f6465766469762d6d6574726963732d616e642d616e616c79736573222c2273657474696e6773223a7b22636f6e74657874223a226465736b746f702d6c696e7578227d7d' timed out. <details<summarySystem Info</summary Fetching remote diagnostics for 'dev-container+7b22686f737450617468223a222f55736572732f64696769746172616c642f7265706f732f6465766469762d6d6574726963732d616e642d616e616c79736573222c2273657474696e6773223a7b22636f6e74657874223a226465736b746f702d6c696e7578227d7d' timed out. </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Saving while logging long print statements worked fine now.
Change:
return this.extensionManagementServerService.localExtensionManagementServer; } <ins> private isExtensionsSyncEnabled(): boolean { return this.userDataAutoSyncEnablementService.isEnabled() && this.userDataSyncResourceEnablementService.isResourceEnabled(SyncResource.Extensions); } </ins> private async hasToFlagExtensionsMachineScoped(extensions: IGalleryExtension[]): Promise<boolean> { <del> if (!this.userDataAutoSyncEnablementService.isEnabled() || !this.userDataSyncResourceEnablementService.isResourceEnabled(SyncResource.Extensions)) { return false; } const result = await this.dialogService.show( Severity.Info, extensions.length === 1 ? localize('install extension', "Install Extension") : localize('install extensions', "Install Extensions"), [ localize('install', "Install"), localize('install and do no sync', "Install (Do not sync)"), localize('cancel', "Cancel"), ], { cancelId: 2, detail: extensions.length === 1 ? localize('install single extension', "Would you like to install and synchronize '{0}' extension across your devices?", extensions[0].displayName) : localize('install multiple extensions', "Would you like to install and synchronize extensions across your devices?") </del> <ins> if (this.isExtensionsSyncEnabled()) { const result = await this.dialogService.show( Severity.Info, extensions.length === 1 ? localize('install extension', "Install Extension") : localize('install extensions', "Install Extensions"), [ localize('install', "Install"), localize('install and do no sync', "Install (Do not sync)"), localize('cancel', "Cancel"), ], { cancelId: 2, detail: extensions.length === 1 ? localize('install single extension', "Would you like to install and synchronize '{0}' extension across your devices?", extensions[0].displayName) : localize('install multiple extensions', "Would you like to install and synchronize extensions across your devices?") } ); switch (result.choice) { case 0: return false; case 1: return true; </ins> } <del> ); switch (result.choice) { case 0: return false; case 1: return true; </del> <ins> throw canceled(); </ins> } <del> throw canceled(); </del> <ins> return false; </ins> } getExtensionsReport(): Promise<IReportedExtension[]> {

Discussion:
Open a remote window Make sure Settings Sync is not enabled Install any workspace extension (say Python Extension) Also gets installed locally
Change:
/// Handler function for an inbound request async fn handle(ctx: HandleContext, req: Request<Body>) -> Result<Response<Body>, Infallible> { let client_key_half = get_client_key_half(&req); <del> let mut res = match req.uri().path() { SECRET_KEY_MINT_PATH => handle_secret_mint(ctx, req), _ => handle_proxied(ctx, req).await, </del> <ins> let path = req.uri().path(); let mut res = if path.starts_with(&ctx.cm.base_path) && path.get(ctx.cm.base_path.len()..).unwrap_or_default() == SECRET_KEY_MINT_PATH { handle_secret_mint(&ctx, req) } else { handle_proxied(&ctx, req).await </ins> }; <del> append_secret_headers(&mut res, &client_key_half); </del> <ins> append_secret_headers(&ctx.cm.base_path, &mut res, &client_key_half); </ins> Ok(res) } <del> async fn handle_proxied(ctx: HandleContext, req: Request<Body>) -> Response<Body> { </del> <ins> async fn handle_proxied(ctx: &HandleContext, req: Request<Body>) -> Response<Body> { </ins> let release = if let Some((r, _)) = get_release_from_path(req.uri().path(), ctx.cm.platform) { r } else {

Discussion:
The command was augmented with the argument here in Because the does not include the , any attempts to mint a key will result in a 404 if the server-base-path is set. I think this is the reason why I am experiencing an issue that any sign-in attempt in the browser (e.g., Github Copilot, Settings Sync) do not persist between page refreshes. <!-- 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.89.1 OS Version: x64 Steps to Reproduce: the browser, observe 404s to
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.89.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
assigned to you since you approved the original PR
Change:
registerAction2(class ToggleEditorActions extends Action2 { static readonly settingsID = `workbench.editor.editorActionsLocation`; constructor() { <ins> const titleBarContextCondition = ContextKeyExpr.and( ContextKeyExpr.equals(`config.workbench.editor.showTabs`, 'none').negate(), ContextKeyExpr.equals(`config.${ToggleEditorActions.settingsID}`, 'default'), )?.negate(); </ins> super({ id: `toggle.${ToggleEditorActions.settingsID}`, title: localize('toggle.editorActions', 'Editor Actions'), toggled: ContextKeyExpr.equals(`config.${ToggleEditorActions.settingsID}`, 'hidden').negate(), menu: [ <del> { id: MenuId.TitleBarContext, order: 3, when: ContextKeyExpr.equals(`config.workbench.editor.showTabs`, 'none') }, { id: MenuId.TitleBarTitleContext, order: 3, when: ContextKeyExpr.equals(`config.workbench.editor.showTabs`, 'none'), group: '2_config' } </del> <ins> { id: MenuId.TitleBarContext, order: 3, when: titleBarContextCondition }, { id: MenuId.TitleBarTitleContext, order: 3, when: titleBarContextCondition, group: '2_config' } </ins> ] }); }

Discussion:
It is now possible to have editor actions in the custom title bar even when tabs are enabled. However in that case, there is no entry in the context menu of the custom title to remove the editor actions again from the title: !
verification steps: or click title bar context menu =should be able to toggle editor actions
<!-- UNABLETOLOCATECOMMITMESSAGE issue --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased
Change:
mds.appendMarkdown(`[$(zap)-link](#link)`); let result: HTMLElement = renderMarkdown(mds).element; <del> assert.strictEqual(result.innerHTML, `<p><a data-href="#link" title="#link"><span class="codicon codicon-zap"></span>-link</a></p>`); </del> <ins> assert.strictEqual(result.innerHTML, `<p><a href="" data-href="#link" title="#link"><span class="codicon codicon-zap"></span>-link</a></p>`); </ins> }); test('render icon in table', () => {

Discussion:
This message right here: <img width="474" alt="image" src="https://user-"When i click on "Don't show again", it doesn't really work: as soon as i navigate to that input field again, it shows the same message again. Version: 1.66.2 Commit: User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36 Embedder:
says this regressed with
Change:
enable: true }, ProgressLocation.Notification); } finally { <del> InstallingSpeechProvider.bindTo(contextKeyService).set(false); </del> <ins> InstallingSpeechProvider.bindTo(contextKeyService).reset(); </ins> } }

Discussion:
Type: <bBug</bI ccould not close inline chats or quick picks anymore. Looks like captured all esc shortcuts. I had used voice input during the session. VS Code version: Code - Insiders 1.90.0-insider (, 2024-05-17T17:53:51.447Z) OS version: Darwin x64 23.4.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (64)</summaryExtensionVersion ------ html-snippets0.2.1 tsl-problem-matcher0.6.2 emojisense0.10.0 github-markdown-preview0.3.0 markdown-checkbox0.4.0 markdown-emoji0.3.0 markdown-footnotes0.1.1 markdown-mermaid1.23.0 markdown-preview-github-styles2.0.4 markdown-yaml-preamble0.1.0 mermaid-markdown-syntax-highlighting1.6.3 vscode-tailwindcss0.11.68 esbuild-problem-matchers0.0.3 vscode-eslint2.4.4 kusto0.4.4 EditorConfig0.16.4 prettier-vscode10.4.0 auto-close-tag0.5.15 auto-rename-tag0.1.10 codespaces1.16.22 copilot1.194.885 copilot-chat0.16. copilot-nes0.0.1 remotehub0.63. vscode-github-actions0.26.2 vscode-pull-request-github0.89. headwind1.7.0 debug-tracker-vscode0.0.15 peripheral-viewer1.4.6 vscode-azureresourcegroups0.9.0 vscode-docker1.29.1 vscode-dotnet-runtime2.0.5 debugpy2024.7. isort2023.13. python2024.7. vscode-pylance2024.5.101 jupyter2024.4. jupyter-keymap1.1.2 jupyter-renderers1.0.17 remote-containers0.366.0 remote-ssh0.112. remote-ssh-edit0.86.0 remote-wsl0.88.2 anycode0.0.73 azure-repos0.39.

cpptools1.20.5 live-server0.4.13 remote-repositories0.40.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-markdown-notebook0.0.26 vscode-selfhost-test-provider0.3.25 vscode-speech0.9. vscode-typescript-next5.5. prisma5.14.0 vscode-xml0.26.1 vscode-yaml1.14.0 kuskus-kusto-syntax-highlighting2.0.2 svg-preview2.8.3 pdf1.2.2 vscode-mdx1.8.5 volar2.0.10 gitblame10.11.0 markdown-all-in-one3.6.2 (3 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
are you certain its that command? It is only enabled when a voice chat session is active. When you set the log level to trace, please check what is printed when you trigger in the chat widget:
Happened again on a different machines. The main step of the STR seems to be using voice input (I mostly demo the hold down key usage) Both times I did troubleshooting and it pointed to the stop listening command.
I need some steps to reproduce that you lead you to the issue and the precise location in the UI where this happens (globally anywhere or when you are in a chat input field?)
Change:
return true; } <ins> public canAddExtension(extension: IExtensionDescription): boolean { if (this._windowService.getConfiguration().remoteAuthority) { return false; } if (extension.extensionLocation.scheme !== Schemas.file) { return false; } const extensionDescription = this._registry.getExtensionDescription(extension.identifier); if (extensionDescription) { // ignore adding an extension which is already running and cannot be removed if (!this._canRemoveExtension(extensionDescription)) { return false; } } return this._usesOnlyDynamicExtensionPoints(extension); } public canRemoveExtension(extension: IExtensionDescription): boolean { if (this._windowService.getConfiguration().remoteAuthority) { return false; } if (extension.extensionLocation.scheme !== Schemas.file) { return false; } const extensionDescription = this._registry.getExtensionDescription(extension.identifier); if (!extensionDescription) { // ignore removing an extension which is not running return false; } return this._canRemoveExtension(extensionDescription); } </ins> private _canRemoveExtension(extension: IExtensionDescription): boolean { if (this._extensionHostActiveExtensions.has(ExtensionIdentifier.toKey(extension.identifier))) { // Extension is running, cannot remove it safely

Discussion:
Testing install eamodio.remotehub restart code and open from console with in the explorer, note that the title shows install the . It contains only a contribution, which is a dynamic contribution point Note that you are asked to reload: There should not be such a prompt. Interestingly the explorer label has already changed to , that means the contribution has received a delta
Change:
} } <del> let fontSize = this._toInteger(terminalConfig.fontSize, MINIMUM_FONT_SIZE, EDITOR_FONT_DEFAULTS.fontSize); </del> <ins> let fontSize = this._toInteger(terminalConfig.fontSize, MINIMUM_FONT_SIZE, MAXIMUM_FONT_SIZE, EDITOR_FONT_DEFAULTS.fontSize); </ins> const lineHeight = terminalConfig.lineHeight ? Math.max(terminalConfig.lineHeight, 1) : DEFAULT_LINE_HEIGHT; if (excludeDimensions) {

Discussion:
Testing Steps to Reproduce: the integrated terminal trying to set: , accidentally enter Bug ! Terminal contents start leaking outside of the panel. I also think we should set a maximum terminal font size just as we do for the minimum terminal font size
As a bit of polish the json schema could also include these ranges so a warning will appear in the settings panel.
Hi, I'd like to take this Issue up and make a PR. Thanks in advance PS: I'm new to Open Source and would like your support.
great! There's already a minimum value (), we just need to find a good maximum and add it there. Right now I'm thinking somewhere between 20 and 30 should be the default as that's getting into the ridiculously large territory. There are instructions for building the project here
Hi I've created a and would like your comments. Thanks for the great support.
Should it match the editor max font size? The editor has some max, not sure what it is, but I can now make the text much larger in the editor than the terminal.
Change:
import { IHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegate'; import { IWorkbenchLayoutService, Position } from 'vs/workbench/services/layout/browser/layoutService'; import { fromNow } from 'vs/base/common/date'; <ins> import { equals } from 'vs/base/common/arrays'; </ins> // type SCMResourceTreeNode = IResourceNode<ISCMResource, ISCMResourceGroup>; // type SCMHistoryItemChangeResourceTreeNode = IResourceNode<SCMHistoryItemChangeTreeElement, SCMHistoryItemTreeElement>;

Discussion:
Testing Confirm that there is a ticked item for the remote branch (ex: origin/main) See repro below: !
Change:
}; } <ins> // Not a branch (tag, detached) if (this.state.HEAD?.type === RefType.Tag || !this.state.HEAD?.name) { return { command: 'git.commit', title: l10n.t('{0} Commit', '$(check)'), tooltip: this.state.isCommitInProgress ? l10n.t('Committing Changes...') : l10n.t('Commit Changes'), arguments: [this.repository.sourceControl, ''] }; } </ins> // Commit return this.postCommitCommandCenter.getPrimaryCommand(); }

Discussion:
Testing a specific commit, not a branch, to go to a detached state Notice the SCM button still lets you (among others). None of the "sync" actions make sense in detached state. One can only commit. And an idea for a default button when there are no changes: . <img width="506" alt="image" src=""
Created to track the action button.