jiebi/CodeConvo huggingface dataset:
Change:
.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon { margin-right: 4px; <del> padding: 0px 2px 2px 2px; </del> <ins> padding: 2px; </ins> } .quick-input-list .quick-input-list-entry-action-bar {

Discussion:
<img width="472" alt="capture" src="https://user-"
I think they look nice centered in the quick pick item. Any particular reason for this feedback?
I think they don't look nice :-), especially since the second line is rendered slightly dimmed.
This suggestion looks like it's in line with the documented design intent from in the VS Code design toolkit. The actions and shortcuts should be aligned with the primary text of the option. This makes the position stable whether the second line of supporting text is shown or not :) !
Yeah top aligned looks like it fits more imo
I think another reason for top right alignment is that when hovering over items, the action will always be in a consistent spot.
I think I'm use to seeing them center aligned because of Teams: !
Another example where we have multi-lines and actions shown is in notifications: <img width="466" alt="CleanShot 2021-09-01 at 12 04 53 src="https://user-"
LGTM
Change:
*/ extraEditorClassName?: string; /** <del> * Should the editor be read only. </del> <ins> * Should the editor be read only. See also `domReadOnly`. </ins> * Defaults to false. */ readOnly?: boolean; /** <ins> * Should the textarea used for input use the DOM `readonly` attribute. * Defaults to false. */ domReadOnly?: boolean; /** </ins> * Enable linked editing. * Defaults to false. */

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. --- VS Code Version: OS Version: Steps to Reproduce: a browser version vscode a editor with readonly mode extension who use the API would be invalid This issue won't be occured on desktop version. Follow code show more details: the attribute is used to disable keyboard popping in mobile devices, but it break the event too. Change the to may be better <!-- 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 direct to the extension publisher. The 'Help Report Issue' dialog can assist with this. --
Can you please give an example of how behaves differently? I am not 100% convinced that there is a bug here. I would expect that is never called, not in desktop and also not in web.
There is a way that are relatively easy to reproduce this bug, when someone use GitHub CodeSpaces (because the bug only occured in browser version): the extension and the Extension. (the extension require the API for basic cursor motion, and the GitLens extension will provide can readonly mode editor) any file which has at least two commit, click in the editor menu title. ! we will get a readonly editor, but extension can not move cursor by pressing key here. The readonly attribute was in this commit: As the message describe, it used to disable keyboard popping up on mobile devices, and there is no condition at the earliest time. and then add the condition at this commit by you , I guess that's the readonly attribute cause some bug at desktop version at that time? Another thing, I think when we need consider the mobile devices, I think change the to may be better, but there is not a option named in , so I just change it to at .
To verify, install vim in the browser and use it in a readonly editor (e.g. left side of a diff editor).
Change:
this._commentThreadRangeDecorator.update(this.editor, commentInfo); })); <del> this.beginCompute(); </del> <ins> this.beginComputeAndProvideStatus(); } private beginComputeAndProvideStatus(): void { this.beginCompute().then(() => { if (!this._hasProvidedAriaStatus && this._commentInfos.some(commentInfo => commentInfo.commentingRanges.ranges.length > 0 || commentInfo.commentingRanges.fileComments)) { this._hasProvidedAriaStatus = true; status(nls.localize('hasCommentRanges', "Editor has commenting ranges.")); } }); </ins> } private async openCommentsView(thread: languages.CommentThread) {

Discussion:
[x] Indicate when a document has commentable ranges Aria status when a document is opened [x] Add keyboard shortcut for adding a comment [x] Provide commands to go to next and previous commentable range [x] Add an accessible help menu to the comment widget Esc dismisses widget Lists go to next/previous commentable range commands + keyboard shortcuts Lists command and keyboard shortcut to add a comment Lists keyboard shortcut to execute the comment primary action and what the primary action is [x] The Comments view should respect the enter/space = reveal+focus/reveal [x] Make the comment widget toolbar always visible when in screen reader mode
Related to
is the last part of this, and it's almost done!
Mr.KITSANAPAN MEEKEAW
Change:
import { Range } from 'vs/editor/common/core/range'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; <ins> import { EditorOption } from 'vs/editor/common/config/editorOptions'; </ins> export class InlineChatContentWidget implements IContentWidget {

Discussion:
Repro: vscode on (wide) external monitor inline chat - Additional info: Resizing vscode to half of screen fixes the problem Version: 1.88.0-insider Commit: Date: 2024-03-27T05:51:26.826Z Electron: 28.2.6 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Darwin arm64 23.4.0

Sometimes the default width for inline chat seems very wide: <img width="854" alt="image" src=""Maybe it could grow while typing and or allow to be resized.
decided against dynamic and going with a more reasonable default width of 360px
Change:
return CopyPasteController.get(editor)?.pasteAs(id); } }); <ins> registerEditorAction(class extends EditorAction { constructor() { super({ id: 'editor.action.pasteAsText', label: nls.localize('pasteAsText', "Paste as Text"), alias: 'Paste as Text', precondition: EditorContextKeys.writable, }); } public override run(_accessor: ServicesAccessor, editor: ICodeEditor, args: any) { return CopyPasteController.get(editor)?.pasteAs('text'); } }); </ins>

Discussion:
In several applications you can use Ctrl+Shift+V to paste text without formatting. We already have that registered to unfortunately, but it would be great to introduce a dedicated command for the default paste handler that users could perhaps rebind to Ctrl+Shift+V for cases where there are multiple paste handlers and I know I just want the literal text on my clipboard.
Should mostly be possible using: But a dedicated command is a good idea
I must say I find the settings confusing. It took me a long time before I realised that the setting "Editor: Format On Paste" was not the only one affecting this behaviour, but that there is also "Editor: Auto Indent" which "automatically adjusts the indentation when users paste". Edit: The keyboard shortcut works great after all (My VS Code was not up to date)
What VS Code version are you on?
I'm on 1.77.1, which VS Code is telling me corresponds to "Date: 2023-04-04 (5 mos ago)". I guess maybe the behaviour your comment depends on was introduced in the meantime (I haven't given VS Code root privileges, so it can't auto update, I guess I forgot to update manually). If that's the case I'm looking forward to adding the shortcut :¬), thanks for your reply
Yes it was in 1.79. Try updating and that command should then work
Change:
return undefined; } <ins> // If we are in a notebook cell, resolve relative to notebook instead if (resourceUri.scheme === Schemes.notebookCell) { const notebook = vscode.workspace.notebookDocuments .find(notebook => notebook.getCells().some(cell => cell.document === document)); if (notebook) { resourceUri = resourceUri.with({ scheme: notebook.uri.scheme }); } } </ins> return { kind: 'internal', path: resourceUri.with({ fragment: '' }),

Discussion:
while testing a markdown file with a header a notebook with a markdown cell and link to that header the link in the rendered markdown result: vscode attempts to navigate to a file named note that both auto-complete and find references for the header work correctly for that link.
Change:
} else { hoverDisposables.add(addDisposableListener(options.target, EventType.CLICK, () => this.hideHover())); } <ins> const focusedElement = <HTMLElement | null>document.activeElement; if (focusedElement) { hoverDisposables.add(addDisposableListener(focusedElement, EventType.KEY_DOWN, () => this.hideHover())); } </ins> if ('IntersectionObserver' in window) { const observer = new IntersectionObserver(e => this._intersectionChange(e, hover), { threshold: 0 });

Discussion:
I think a hover should not remain open when I type somewhere. !
Hi, can you please share more details on how to exactly reproduce the issue and what version/OS? I would like to work on this issue.
To repro: search side bar into text box an icon in the side bar to get the hover to show some letters, the hover stays visible You might need to use the to get the new style hovers to show up
Change:
] }); <del> if (response === 0 /* OK */) { try { const command = `osascript -e "do shell script "mkdir -p /usr/local/bin && ln -sf '${target}' '${source}'" with administrator privileges"`; await promisify(exec)(command); } catch (error) { throw new Error(localize('cantCreateBinFolder', "Unable to install the shell command '{0}'.", source)); } </del> <ins> if (response === 1 /* Cancel */) { throw new CancellationError(); } try { const command = `osascript -e "do shell script "mkdir -p /usr/local/bin && ln -sf '${target}' '${source}'" with administrator privileges"`; await promisify(exec)(command); } catch (error) { throw new Error(localize('cantCreateBinFolder', "Unable to install the shell command '{0}'.", source)); </ins> } } }

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 (It's happening for fresh installation) <!-- 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.85.1 OS Version: Macbook M1 Pro - Sonoma 14.2.1 Steps to Reproduce: VSCode Darwin build from downloads page - (Mac .zip Apple Silicon) Shell command: Install 'code' command in PATH cancel for the below prompt <img width="1136" alt="Screenshot 2024-01-02 at 7 35 58 PM" src=""It should display that shell command was not completed successfully. Instead it shows command successfully <img width="1136" alt="Screenshot 2024-01-02 at 7 38 19 PM" src=""
Change:
return result.join(', '); } else if (isSCMViewSeparator(element)) { <del> return element.label; </del> <ins> return element.ariaLabel ?? element.label; </ins> } else { const result: string[] = [];

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 createTerminal(terminalProcess: ITerminalProcess): TPromise<TerminalInstance> { return new TPromise<TerminalInstance>(resolve => { <del> var terminalInstance = new TerminalInstance(terminalProcess, this.terminalContainer, this.contextService, this.terminalService, this.onTerminalInstanceExit.bind(this)); </del> <ins> var terminalInstance = new TerminalInstance(terminalProcess, this.terminalContainer, this.contextService, this.terminalService, this.messageService, this.onTerminalInstanceExit.bind(this)); </ins> this.terminalInstances.push(terminalInstance); this.setActiveTerminal(this.terminalInstances.length - 1); this.toDispose.push(this.themeService.onDidThemeChange(this.updateTheme.bind(this)));

Discussion:
Steps to Reproduce: terminal as "faketerm" +`
On Linux (ElementaryOS) I get an error dialog with message 'The terminal process terminated with exit code: 1'. Setting as verified, although more details would be helpful.
Indeed that verifies it. Thanks.
Change:
} 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 }))); }

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: 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
Change:
} else if ('kind' in pick && pick.kind === 'image') { const fileBuffer = await clipboardService.readImage(); toAttach.push({ <del> id: hash(fileBuffer).toString(), </del> <ins> id: await imageToHash(fileBuffer), </ins> name: localize('pastedImage', 'Pasted Image'), fullName: localize('pastedImage', 'Pasted Image'), value: fileBuffer,

Discussion:
Testing a large image () it into chat window freezes for a few seconds Seems we spent in the !
cc. is there a compromise on what we hash for the ID? ie, maybe half of the bytes instead of the full thing, or something of the sort, since ATM we are just hashing the entire received
It looks like the function is trying to hash the Uint8Array naively as an object (hashing each key and value for each element in the array) which is going to be extraordinarily slow. should complete in millisecond(s) :)
should our detect if it's web and if crypto is available and use that if so? I can see this happening again.
Yea, I think having it check for typed arrays and arraybuffers would make sense. Unfortunately is sync and webcrypto is async, however, so it would not be a drop-in replacement.
perhaps we could have a signature like to catch at compile time and redirect that use to the async version in ?
Change:
import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; <ins> import { IHistoryService } from 'vs/workbench/services/history/common/history'; import { Schemas } from 'vs/base/common/network'; </ins> const enum Constants { /**

Discussion:
It's an edge case but worthwhile considering 1) Ensure that all new windows are in restricted mode by default 2) Open a new empty window (no open files at all, no open folder) 3) Use <kbdCmd</kbd+<kbd`</kbd-prompt for trusting the workspace, but there is nothing there to be trusted
In this case, it definitely gets in the way that we ask about trust, and also doesn't make too much to limit access to the terminal. However, what considerations should be in place for when someone decides to bring in untrusted content into the workspace after the terminal is opened? Does this matter for empty workspaces
it's only useful for the terminal if the folder is of a potentially foreign origin. I could special case this since it's going to open in the home directory anyway, but should it even be possible to have an empty window in restricted mode? Might need to handle this special case in multiple places if it's not handled by the trust request service?
we have settings to configure the empty window experience... this allows empty windows to bring in untrusted content easily without prompting.
Ok, let's allow opening the terminal if the active workspace root is undefined then as it's safe in that case.
Change:
"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "8.0.0", <del> "xterm": "5.2.0-beta.17", </del> <ins> "xterm": "5.2.0-beta.19", </ins> "xterm-addon-canvas": "0.4.0-beta.7", "xterm-addon-search": "0.11.0", "xterm-addon-serialize": "0.9.0", "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.4", <del> "xterm-headless": "5.2.0-beta.17", </del> <ins> "xterm-headless": "5.2.0-beta.19", </ins> "yauzl": "^2.9.2", "yazl": "^2.4.3" },

Discussion:
Terminal a11y buffer is not read-only. Since this is contenteditable textbox, unintended delete key can mess up the output content. I confirmed that delete key works inside the buffer. It would be even nicer if this buffer could be marked up with readonly to prevent users from accidentally deleting their output content.
did you notice that when you toggle the mode it comes back as the original? so while it seems like editing of the buffer is possible, it's not actually making any changes.
-- You are correct. If you press tab and come back to the buffer via Shift+Tab, it comes back to the original content. However, the content is editable when it gets focused.
Not sure if it's possible to change this, but will investigate
Looks like this is easy to do - just disabling and setting
-- To give you prompt testing results, I have just built the latest main branch on my end (this issue will also be found tomorrow once insider is released). I have found the following inadvertent regression (tested with NVDA and JAWS on Windows): a11y buffer is not readable via standard arrow keys. input -terminal a11y buffer: only requires one Shift+Tab. However, from terminal a11y back to terminal input requires two tab key press. Note that aria-live is now working!
I have already caught that regression, you can build based on this PR to see that I've fixed it
i'll investigate: when I investigate
As of today's insider build (Commit: ), it appears that the accessibility buffer can still be modified accidentally. Additionally, if the buffer has been altered, tabbing to the shell and then shift-tabbing back does not restore the buffer to its previous state, as it did in previous versions. Furthermore, if the buffer has been modified, subsequent command output will not be reflected in the buffer.
see for why we didn't go with readonly. the actual buffer is never modified - the text area element is. focusing the terminal buffer via mouse click for example and shift+tabbing again will restore the contents to what they were before.
Is there a way to reset the state of the buffer without using the mouse? As of the version on the main branch, I am unable to reset the buffer by tabbing and shift-tabbing back to it.

Just hitting tab works for me
Can you get the buffer to reset after tabbing into it after modifying the buffer? I cannot get the buffer to reset with the NVDA on Windows 11; not sure weather there is something wrong on my ends.
-- I can reproduce your issue. Please file a separate issue and provide minimal reproducible steps so that can fully replicate this issue.
I have created the issue at .
Change:
if (!labelTemplate) { return labelType === TerminalLabelType.Title ? (this._instance.processName || '') : ''; } <del> if (this._instance.staticTitle && labelType === TerminalLabelType.Title) { </del> <ins> if (!reset && this._instance.staticTitle && labelType === TerminalLabelType.Title) { </ins> return this._instance.staticTitle.replace(/[nrt]/g, '') || templateProperties.process?.replace(/[nrt]/g, '') || ''; } const detection = this._instance.capabilities.includes(ProcessCapability.CwdDetection);

Discussion:
Testing a terminal tab title setting your terminal to "foo" to set the name to blank string to, but I would expect it to just use my default from 1.
We discussed this and want to require a title.
I don't mean that blank titles should be allowed. I more meant how do I get back to the default I set in settings after I renamed the terminal, I feel I would expect it to let me delete my custom name and then it would use the default
You can reset the setting by clicking on the gear - is that what you mean?
No I meant is there a way to reset the terminal title to be the value of my setting instead of my custom named one?
We currently don't support going backward like that. I'll appropriately rename this issue for more discussion in October because I also wondered about this and discussed it with
Thanks sorry if I wasn't clear . My suggested UX would just be to have that be the default if you were attempt to have a blank name
oh - yes Brigit caught that case and I fixed it. so if it's set to '' or 'any number of spaces', it'll now show the process name. might've misunderstood what you were saying
But shouldn't it show whatever my setting states the default is rather than just the process name?
Sorry, the difference between our issues is she is talking about the setting I'm talking about the terminal title itself and not the setting. I want a blank rename of a terminal to reset to the value of my setting
I thought your setting was set to ''
confused - you can't set it to blank. we don't allow that
!
So my request is if my setting is and I name a terminal "foo". How do I reset "foo" back to the value of . My suggestion was that if you attempted to submit a blank name that would automatically reset to the value of your setting.
yep the name of this issue now reflects that. we'll see what says about that.
and I discussed it and it makes sense to do this
Change:
HEAD: undefined, isCommitInProgress: false, isMergeInProgress: false, <ins> isRebaseInProgress: false, </ins> isSyncInProgress: false, repositoryHasChangesToCommit: false };

Discussion:
Testing [ ] Update label accordingly (deferred) [x] Remove secondary actions
Pushing this out to the next milestone as there are some things I need to investigate first related to the rebase flow.
Decided to keep the "Commit" label for the button to keep things simple. Will change it if needed, based on customer feedback.