jiebi/CodeConvo huggingface dataset:
Change:
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IObjectData, IPooledObject } from './objectPool'; import { ActionRunnerWithContext } from './utils'; <ins> import { createActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem'; </ins> export class TemplateData implements IObjectData { constructor(

Discussion:
Type: <bBug</bAn extension that contributes a submenu with a valid icon to is rendered without the icon (screenshot made on mouse hover, without hovering it's not even visible): ! For comparison, the same submenu icon shows fine as a contribution to : ! To reproduce this, I created an empty extension with a simple set of menu contributions. [1] [2] VS Code version: Code - Insiders 1.86.0-insider (, 2024-01-30T03:56:13.017Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 4.18.0-372.19.1.el86.x8664 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Can you look into why this happens?
I will give it a try.
Since I'm not familiar with either TypeScript or the vscode structure, I don't have a fix, only some random findings. Inspecting the 2 HTML elements (the submenu which does have an icon and the which does not): the working one has an element with ; the broken one has an element with (note the instead of ); For both of these, we eventually construct a , but the call trace for getting there is a bit different: rendering (working fine) in created with an that calls ; calls creates an instance of is set to the expected value based on the object before calling the super () constructor: (not working fine) is created constructor calls the constructor of the super () constructor calls the constructor of the super () the constructor can set a classname for the "More" codicon , but doesn't know what to do for our submenu: so we end up with an untouched class name ("submenu") that was set at the beginning: The difference between the two is that the first one creates an instance of (which extends ), while the second creates directly a . Now, given the separation between and , I'm not sure whether we should just handle the classes for the submenu along the calls in or not. But once we get to the class in , we no longer hold a reference to the that contains the we are interested in.

What does work and is probably not how we should handle this is setting the class name from the start in Like I said, I'm a bit out of my depth here, I'm not familiar with the design and how this should be handled, I'm just writing this down in case it helps.
Thank you, that is a very detailed analysis! Will look into it
Change:
private registerListeners(): void { this._register(addDisposableListener(this.container, EventType.DRAG_ENTER, e => this.onDragEnter(e))); this._register(addDisposableListener(this.container, EventType.DRAG_LEAVE, () => this.onDragLeave())); <del> this._register(addDisposableListener(this.container, EventType.DRAG_OVER, e => { if (!this.overlay) { this.onDragEnter(e); } })); </del> [this.container, window].forEach(node => this._register(addDisposableListener(node as HTMLElement, EventType.DRAG_END, () => this.onDragEnd()))); }

Discussion:
Testing open the emoji picker (ctrl+cmd+space) drag an emoji into the code editor observe that nothing happens from adding a breakpoint, I can observe that  is never invoked I'm not sure what's wrong, the same steps work fine when loading the editor by itself in a browser using . https://user-
Seems to require holding down shift at the moment even though there is no overlay saying this
I cannot drop an emoji into the monaco playground and also not into the TS playground. It also does not work in However it works on stable and stable VS Code when holding Shift as Matt suggested. I also do not see the drop feedback in insiders, so this looks like a regression to me.
Sorry, I think I got confused because in my insiders I have configured , so I do not see the drop indicator. I see no difference in behaviour between VSCode stable and insiders, so it is not a regression as far as I can tell. I can confirm that pressing makes this work
On our playground it does not work either but I am not even seeing the drop indicator: !
The editor at is around 6 months old, so there it doesn't work at all, I acknowledge that. In my original screen recording I was running the editor from sources. I am quite certain this used to work at some time (when Matt first did the PR at ). I'll try bisecting to see if that points to anything. The initial bisect points to
points to
If I comment out the following lines, then dropping text from TextEdit works, otherwise it doesn't: https://user- https://user-
The safest fix seems to be reverting the fix for by commenting out the block of code. Will push that for July and then investigate a proper solution that also in August
Can't seem to get this to work with the Windows emoji picker and the drag/drop extension sample. Does this only work on mac?
I only tested on Mac and don't know if this is supported on windows. Can you drag emoji into other apps, such as notepad?
Doesn't look like it. Will close and leave for someone on mac to verify then.
Change:
} } <del> Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(KernelStatus, LifecyclePhase.Restored); </del> export class ActiveCellStatus extends Disposable implements IWorkbenchContribution { private readonly _itemDisposables = this._register(new DisposableStore());

Discussion:
This is a missing adoption when notebooks became floating window capable. Notice how the status bar entry appears in the main window and not the floating window: ! We have had a similar issue with the text editor status bar and solved it by instantiating it per-window: I think a similar approach would work for notebooks too. The key for this to work is that you get a scoped in the that allows you to listen only to editor change events in the respective window. Consequently, you use a main-window scoped editor service for the main-window status bar: Let me know if you have questions, but I think its easy to copy what we do for editor status here.
When I reload the window with a floating notebook, the status bar does not appear (macOS): !
This is my attempt to fix this issue The problem here is if we register the contrib , we won't get the event. The event is the only place where we get the window's unique instantiationService (which gives us the right statusbarservice). Without the right statusbarservice, we can't register notebook status bar items to the right place.
Not very happy about that, filed
<!-- UNABLETOLOCATECOMMITMESSAGE repo --Issue marked as unreleased but unable to locate closing commit in repo history. If this was closed in a separate repo you can add the label directly, or comment .
<!-- UNABLETOLOCATECOMMITMESSAGE --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:
"tas-client-umd": "0.1.6", "vscode-oniguruma": "1.7.0", "vscode-textmate": "8.0.0", <del> "xterm": "5.2.0-beta.21", </del> <ins> "xterm": "5.2.0-beta.22", </ins> "xterm-addon-canvas": "0.4.0-beta.7", "xterm-addon-search": "0.11.0", "xterm-addon-unicode11": "0.5.0", <del> "xterm-addon-webgl": "0.15.0-beta.4" </del> <ins> "xterm-addon-webgl": "0.15.0-beta.5" </ins> } }

Discussion:
Type: <bBug</bAfter mutating the accessibility buffer for the integrated terminal in the latest iteration of VS Code, the state of the buffer does not restore after tabbing away and refocusing the terminal accessibility buffer using the keyboard. This makes it so that screen reader users cannot get the correct information after inadvertently modifying the buffer. Additionally, if the buffer is in an incorrect state, newly coming output from the terminal will not be reflected in the buffer, making that particular terminal session unusable for screen reader users. Steps to Reproduce: VS Code in the screen reader optimized mode a new integrated terminal a command that outputs text to the terminal, such as -tab to the accessibility buffer and observe that the information is presented correctly the buffer by typing arbitrary characters (or in the extreme case, press ctrl+a and delete the entire buffer) back to the shell and shift-tab to the buffer again, observe that the buffer remains in the incorrect state back to the shell and type in the command that outputs to the terminal again -tab back to the buffer, observe that the buffer remains in the incorrect state and the newly output information does not appear in the buffer. Actual result: The buffer do not return to its correct state after edit. Expected result: After the buffer has been modified, refocusing the buffer via keyboard should return it to its correct state. Note: This used to work during the early iteration of the accessibility buffer. Tested using NVDA 2022.4 on Windows 11 Pro and the latest commit on the main branch at the time of this report (commit: ) VS Code version: Code - OSS Dev 1.75.0 (Commit unknown, Date unknown) OS version: WindowsNT x64 10.0. Modes: Sandboxed: No <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.74.3. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
The problem still occurs as of the latest version of VS code.
Change:
); } case 'unchanged': { <ins> const originalCell = originalModel.cells[diff.originalCellIndex]; const modifiedCell = modifiedModel.cells[diff.modifiedCellIndex]; const type = (originalCell.textModel?.getValue() !== modifiedCell.textModel?.getValue()) ? 'modified' : 'unchanged'; </ins> return new SideBySideDiffElementViewModel( model.modified.notebook, model.original.notebook, <del> originalModel.cells[diff.originalCellIndex], modifiedModel.cells[diff.modifiedCellIndex], 'unchanged', </del> <ins> originalCell, modifiedCell, type, </ins> eventDispatcher, initData, notebookService

Discussion:
Testing !
I was one update behind. Appears to be fixed in the latest!
Oh wait, it was only fixed because of the restart from updating. The issue still occurs in the latest insiders.
Ooh, interesting issue, surprised we've never caught this before.
Root cause is here
Fix will be reverted, see here
Current workaround is to compare each cells (effectively this is the same as ignoring the diffing in worker and comparing everything in main thread). Some comments here Will be reverting the changes due to perf issues
Should now be fixed.
Change:
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.14.0-beta.8.tgz#486ae22b2eb88a12ebded366c4019ee26409cbb8" integrity sha512-G0F70f6zGWtXuZxKiTn9BQswaVz85wcCuadnWRdPFDBlgdEfcboCvVZgQetklOIkluVpt8tYYK013/25iMRKTA== <del> xterm@5.1.0-beta.13: version "5.1.0-beta.13" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.1.0-beta.13.tgz#efbc350a819ec7ff77ff340545178ee48d048e2d" integrity sha512-p2E0XwuuIG6sFLy5/4gkPiesX6BdlR6+3Ew+Tcj+1aTvvum/1jKzmuKprZvQn1RRyCsQTpMrvOB0x5Tj7F9wEw== </del> <ins> xterm@5.1.0-beta.15: version "5.1.0-beta.15" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.1.0-beta.15.tgz#146b70c81fd286dbb003d18449918326fa355b6b" integrity sha512-fO87pEPFMr+h7eo51+6+ew3OhzLm2wwSYz6w/y5lH986rD1lgAeEqFuzjr64pjBzwAihnoaTpumYg5lTZDQpSA== </ins>

Discussion:
Testing with EDIT or https://user-
!
!
weird behavior on too !
also happens with
also lines aren't resizing !
did some change happen around trusted types? The dynamically loaded script needs to set inline attributes/innerHTML
No, nothing that I am aware of. Tho, the assignment () should have never worked with trusted types enabled because it's a bare string, not If you have to use assignment (which should be the exception) you need to use a trusted types policy and create trusted html through that. This is a sample: However, you should try to avoid that and keep things more simple, e.g use and/or
Ah you're right, this was a coding error introduced with underlines:
Change:
import { defaultInputBoxStyles, defaultToggleStyles } from 'vs/platform/theme/browser/defaultStyles'; /** Specified in searchview.css */ <del> const SingleLineInputHeight = 24; </del> <ins> const SingleLineInputHeight = 26; </ins> export interface ISearchWidgetOptions { value?: string;

Discussion:
Perhaps due to semi-opaque color being applied to multiple layers within the input: <img width="210" alt="CleanShot 2022-12-15 at 11 28 11 src="https://user-"<img width="289" alt="CleanShot 2022-12-15 at 11 28 23 src="https://user-"
The source control message input background does not seem to use color customization at all.
I saw it in there, but it's a fairly complex component under the hood and (I think) multiple layers of the component use it. Because the color is semi-opaque it's appearing brighter than it should be after mixing with one layer with another.
You can reproduce & verify that the colour is not applied to this particular input by setting color customization in your settings JSON to a bright red: Observe all other inputs having bright red backgrounds but the commit message input background still having the same background as the surrounding panel's background.
This is what I am seeing with the built-in theme, it looks like it completely blends with the panel's background. For me this is happening with all themes, built-in & third-party - the input's background inherits the panel's background and cannot be customised at all. !
It works for me. I don't see the behavior you do with a transparent background. I'm also noting that you have a different typeface used for the placeholder. That leads me to believe there is something else going on. Are you using any extensions that manipulate VS Code e.g. customize UI? <img width="314" alt="CleanShot 2022-12-15 at 13 26 22 src="https://user-"In any case this will be fixed by . I'd recommend opening up a separate issue for your specific problem.
It works for me too when I place SCM panel to the left sidebar, but when SCM panel is placed to the right sidebar then background colour theming is ignored on the input. I do not see this problem mentioned in . ! !
That one I can indeed repro. Can you file a new issue for that?
Done! Submitted as .
Change:
this.viewContainerActivities.set(viewContainerId, activities); } for (let i = 0; i <= activities.length; i++) { <del> if (i === activities.length) { </del> <ins> if (i === activities.length || isUndefined(activity.priority)) { </ins> activities.push(activity); break; <del> } else if (activities[i].priority ?? 0 <= (activity.priority ?? 0)) { </del> <ins> } else if (isUndefined(activities[i].priority) || activities[i].priority! <= activity.priority) { </ins> activities.splice(i, 0, activity); break; }

Discussion:
Type: <bBug</bAn extension I maintain creates multiple SourceControl objects and implements a command to refresh them all in parallel. When an object has completed its refresh (adding/removing/updating its SourceControlResourceGroups) it updates its count property. When this happens for the first object the progress (clock) badge on the SCM icon in the activity bar gets replaced by that count, thus giving the user the impression that the refresh has completed if they have switched to a different activity and so don't see the ongoing progress bar animation across the top of the SOURCE CONTROL pane. When ProgressService adds the clock badge using ActivityService it specifies , which sounds like it is supposed to give this badge priority over a count badge: But it doesn't seem to have that effect. I will try to prepare a sample extension that demonstrates the issue. VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-26T21:24:03.029Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
Adding as he seems to have recently changed the referenced line.
Would be waiting for the sample extension. Thanks in advance for doing so. Can you also please check the behaviour in older version of VS Code?
For the repro: the source-control-sample folder. and run. EDH window, close any already-open folder/workspace, and optionally create an empty profile to rule out other extensions and odd settings. palette run . Accept the default (demo), then in the local folder dialog create/choose a scratch folder, and trust it if prompted. to SCM view. and watch the SCM side bar and activity bar icon badge: ! Notice how the first SourceControl completes its withProgress refresh after 4 seconds, updates the input box placeholder to report this, and sets its count property. At this point the second SourceControl is half way through its 8-second refresh, and the progress bar animation continues, but the clock badge on the activity bar icon has been displaced by the count badge (4) of the first one. Behaviour on 1.83.1 is correct: !
do you now have the info you need? Seeing how this is apparently a 1.84 regression, will it be treated as a Candidate for the milestone?
Thanks a lot for info and repro.

This is indeed a regression and caused by the wrong prioritising of the badges. Tagged this as candidate.
/verified
Adding verified label as verified it
Change:
updateLayout(this._configurationService, e); this._audioCueService.playAudioCue(AudioCue.terminalQuickFix); <del> const parentElement = e.closest('.xterm') as HTMLElement; </del> <ins> const parentElement = (e.closest('.xterm') as HTMLElement).parentElement; </ins> if (!parentElement) { return; }

Discussion:
Repro: copilot chat in terminal /cmd+. click the action It hides when clicked, enter works though
This only happens sometimes, not sure on exact case
Change:
import { basename } from 'vs/base/common/resources'; import { FileChangesEvent, FileChangeType, FileOperationError, FileOperationResult, NotModifiedSinceFileOperationError } from 'vs/platform/files/common/files'; import { SaveReason, SaveSourceRegistry } from 'vs/workbench/common/editor'; <del> import { Promises } from 'vs/base/common/async'; </del> <ins> import { Promises, timeout } from 'vs/base/common/async'; </ins> import { consumeReadable, consumeStream, isReadableStream } from 'vs/base/common/stream'; import { runWithFakedTimers } from 'vs/base/test/common/timeTravelScheduler';

Discussion:
This is a follow-up from and describes the problem that save participants causing a save operation
reproduced when undoing some fixes (applying the fix below)
fyi
Change:
} async run(accessor: ServicesAccessor): Promise<void> { <del> const paneCompositeService = accessor.get(IPaneCompositePartService); </del> <ins> const viewsService = accessor.get(IViewsService); </ins> const explorerService = accessor.get(IExplorerService); <del> await paneCompositeService.openPaneComposite(VIEWLET_ID, ViewContainerLocation.Sidebar); </del> <ins> await viewsService.openView(VIEW_ID); </ins> await explorerService.refresh(); } });

Discussion:
Does this issue occur when all extensions are disabled?: Yes Version: 1.84.2 (user setup) Commit: Date: 2023-11-09T10:51:52.184Z Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0. Steps to Reproduce: ! also causes to fail. Related issues: Workarround: call
I cannot reproduce, so you just move views around a bunch until the explorer disappears? Do you have any extension?
Yes, Make Folders appear independently and move Explorer into Folders. I expect view back to Explorer include Folders instead of Explorer eventually disappearing. Explorer disappearing can cause other problems, including but not limited to fail. fail. As I said at the beginning: I can even reproduce it in a completely fresh installation of the macOS version of vscode without any extensions installed. !
Okay so I can see that refresh explorer doesn't work in this case, that's for sure. I cannot get folders to completely disappear
In fact, what disappeared was the label . After the move, Its position is replaced by . The folder tree itself is not affected. As shown in the picture, the MOVIES folder contents can still be browsed, but its label(or button anyway) in activity bar is from to . The view hierarchy relationship changes from: Explorer Folders Open editors timeline outline to: Folders Open editors timeline outline The ability to browse folders itself is not affected, but those commands bound to or target to will be invalid. This is also the root cause of .
It's going to be confusion but "Explorer" is actually the container while "Folders" is what we call the view. So when you move Folders out of the explorer it creates its own container called "Folders" and this is working as intended. is a different root cause, but there's definitely a bug here around refresh and other explorer commands. Thanks for the find!
To verify: the folder view (the file tree structure) somewhere else separate from the explorer view container refresh explorer You should stay on the folder view and not be moved to a different view container. You should also see the refresh properly occur.
Change:
/** * Sets the terminal name to the provided title or triggers a quick pick <del> * to take user input. </del> <ins> * to take user input. If no title is provided, will reset based to the value indicated * user's configration. </ins> */ <del> rename(title?: string): Promise<void>; </del> <ins> rename(title?: string | 'triggerQuickpick'): Promise<void>; </ins> /** * Triggers a quick pick to change the icon of this terminal.

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