jiebi/CodeConvo huggingface dataset:
Change:
return 1; } <del> if (statA.isDirectory && statB.isDirectory) { return statA.name.toLowerCase().localeCompare(statB.name.toLowerCase()); } </del> if (statA instanceof NewStatPlaceholder) { return -1; }

Discussion:
VSCode Version: Code 1.8.0 (, 2016-12-13T17:45:32.595Z) OS Version: Windows_NT ia32 10.0. Extensions: Steps to Reproduce: 3 folders called "Folder 1" , "Folder 2" and "Folder 10" 10 appears in between Folder 1 and Folder 2. !
The macOS Finder, for example, handles this case correctly.
do you recall any reason why we are not using the for folders in ?
This actually happens for files and folders. A good area for a PR
As related, can also be included in February Milestone?
Unlikely.
Change:
return groups; } <del> private getActions(menuId: MenuId, elements: ITreeItem[], listen?: DisposableStore): { primary: IAction[]; secondary: IAction[] } { </del> <ins> private getActions(menuId: MenuId, elements: ITreeItem[]): { primary: IAction[]; secondary: IAction[] } { </ins> if (!this.contextKeyService) { return { primary: [], secondary: [] }; }

Discussion:
It looks like everything is getting disposed properly and I haven't been able to find a way to repro. It looks like this has only been seen on builds that are 12 days old. Let's see if we see it again.
I can repro if I have a tree with ~145 elements visible, as each one has a listener for whether the inline menu items change base on context key value changes. This listener is also apparently listening for whether a menu item's "hidden state" also changes, which is where the problem occurs. It seems that every menu in the workbench listens for the same "hidden state" event.
The error telemetry should be fixed, but we're still going to listen on tree menus.
Change:
ToggleStickyScroll = 'workbench.action.terminal.toggleStickyScroll', StartVoice = 'workbench.action.startTerminalVoice', StopVoice = 'workbench.action.stopTerminalVoice', <ins> FontZoomIn = 'workbench.action.terminal.fontZoomIn', FontZoomOut = 'workbench.action.terminal.fontZoomOut', FontZoomReset = 'workbench.action.terminal.fontZoomReset', </ins> // Developer commands

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. --The new January 2024 (version 1.86) updates allows you to change the terminal font size with the mouse wheel. This is mouse users. Why were us keyboard users left out?? Can we please get commands to increase, decrease and reset the terminal font to be used for custom hotkeys. Cheers
Our zoom in / out keybindings do this for me... and
that's for the whole workbench, not just the terminal. This is also lacking in the editor afaict. I'm going to close this as out of scope as it's very easy for an extension to implement this type of behavior. Correct me if I'm wrong about the editor missing the behavior though as we want to align there.
We try to keep VS Code lean and we think the functionality you're asking for is great for a VS Code extension. Maybe you can already find one that suits you in the . Just in case, in a few simple steps you can get started . See also our . Happy Coding!
it does exist for the editor ! !
Thanks, I was searching for "zoom"
sweeeeet! Thank you. Looking forward to this.
Change:
// log in telemetry this.telemetryService.publicLog2<WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification>('workbenchActionExecuted', { id: e.action.id, from: 'debugActionsWidget' }); })); <del> this._register(dom.addDisposableListener(mainWindow, dom.EventType.RESIZE, () => this.setCoordinates())); </del> this._register(dom.addDisposableGenericMouseUpListener(this.dragArea, (event: MouseEvent) => { const mouseClickEvent = new StandardMouseEvent(dom.getWindow(this.dragArea), event); <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); </ins> if (mouseClickEvent.detail === 2) { // double click on debug bar centers it again #8250 const widgetWidth = this.$el.clientWidth; <del> this.setCoordinates(0.5 * mainWindow.innerWidth - 0.5 * widgetWidth, 0); </del> <ins> this.setCoordinates(0.5 * activeWindow.innerWidth - 0.5 * widgetWidth, 0); </ins> this.storePosition(); } })); this._register(dom.addDisposableGenericMouseDownListener(this.dragArea, (event: MouseEvent) => { this.dragArea.classList.add('dragged'); <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); </ins> <del> const mouseMoveListener = dom.addDisposableGenericMouseMoveListener(mainWindow, (e: MouseEvent) => { const mouseMoveEvent = new StandardMouseEvent(mainWindow, e); </del> <ins> const mouseMoveListener = dom.addDisposableGenericMouseMoveListener(activeWindow, (e: MouseEvent) => { const mouseMoveEvent = new StandardMouseEvent(activeWindow, e); </ins> // Prevent default to stop editor selecting text #8524 mouseMoveEvent.preventDefault(); // Reduce x by width of drag handle to reduce jarring #16604 this.setCoordinates(mouseMoveEvent.posx - 14, mouseMoveEvent.posy - 14); }); <del> const mouseUpListener = dom.addDisposableGenericMouseUpListener(mainWindow, (e: MouseEvent) => { </del> <ins> const mouseUpListener = dom.addDisposableGenericMouseUpListener(activeWindow, (e: MouseEvent) => { </ins> this.storePosition(); this.dragArea.classList.remove('dragged');

Discussion:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it
Change:
dialogBorder?: Color; } <ins> interface ButtonMapEntry { label: string; index: number; } </ins> export class Dialog extends Disposable { private element: HTMLElement | undefined; private modal: HTMLElement | undefined;

Discussion:
Testing Mac, Insiders here's the code from my extension to get a modal dialog: Native: ! Custom: ! I actually like the fact that the button is always rightmost in the custom dialog, not sure why it is like it is in the native one.
I believe the layout is platform dependent. I don't think we need to adopt this behavior. thoughts?
I think we should try to stay close to platform expectations so that people on their OS feel familiar.
Change:
this._store.add(tracker.onDidFocus(() => this._ctxResponseFocused.set(true))); this._ctxInputEditorFocused = CTX_INLINE_CHAT_FOCUSED.bindTo(_contextKeyService); <del> this._chatWidget.inputEditor.onDidFocusEditorWidget(() => this._ctxInputEditorFocused.set(true)); this._chatWidget.inputEditor.onDidBlurEditorWidget(() => this._ctxInputEditorFocused.set(false)); </del> <ins> this._store.add(this._chatWidget.inputEditor.onDidFocusEditorWidget(() => this._ctxInputEditorFocused.set(true))); this._store.add(this._chatWidget.inputEditor.onDidBlurEditorWidget(() => this._ctxInputEditorFocused.set(false))); </ins> const statusMenuId = options.statusMenuId instanceof MenuId ? options.statusMenuId : options.statusMenuId.menu; const statusMenuOptions = options.statusMenuId instanceof MenuId ? undefined : options.statusMenuId.options;

Discussion:
Repro: in inline chat: !
Oh it's a scroll shadow: !
We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on , where the community has already answered thousands of similar questions. You may find their helpful if your question has not already been asked. See also our . Happy Coding!
I blame it your theme. Inline chat isn't doing anything special here, tho we might wanna tweak the min size
The problem here is that the height of the chat widget inside the inline chat isn't correct and doesn't seem to be updated when the answer is streamed in. There is much more than 40% room available so it should show the full response. Also this is Dark Modern; the theme is fine it's the size: !
That's surprising. Notice how it works here until it reaches the max zone height
Must be related to the code block being replied with. But whatever I do I cannot get it to reply like that...
Ok, I can repro in a TS file with . Looks like the tree reports the wrong content height. Overall we measure 94px (for the input and tree) when in fact only the tree is 107px <img width="1272" alt="Screenshot 2024-03-22 at 16 37 16" src=""
Is editor rendering somehow async and should I ask for content height at some later point?
Change:
export class DataTree<TInput, T, TFilterData = void> extends AbstractTree<T | null, TFilterData, T | null> { <del> declare model: ObjectTreeModel<T, TFilterData>; </del> <ins> protected declare model: ObjectTreeModel<T, TFilterData>; </ins> private input: TInput | undefined; private identityProvider: IIdentityProvider<T> | undefined;

Discussion:
This is a follow-up on and where I simply make the model-property of the tree public. Tho, a better fix might be needed here
Change:
}); const name = inputTagName.replace(/^.|/.|..|~|^|:|/$|.lock$|.lock/||*|s|^s*$|.$/g, '-'); <del> const message = inputMessage || name; await repository.tag(name, message); </del> <ins> await repository.tag(name, inputMessage); </ins> } @command('git.deleteTag', { repository: true })

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --When creating a git tag via the <kbdF1</kbdmenu, the user is prompted to enter a tag name — this is of course mandatory. After that is entered, the user is prompted to enter a tag message. If this is left blank (the user just presses <kbdEnter</kbd), the tag name is set as the tag message. This is neither the behavior that I expect not the behavior I desire. I would expect either an annotated tag to be created with an empty message or a lightweight tag, the latter being preferred. <sup(not sure whether to put this as a bug or feature request)</sup
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.461 --<!-- potentialduplicatescomment --
/assign
Change:
helpEntries: [{ description: nls.localize('tasksQuickAccessHelp', "Show All Debug Consoles"), commandId: SELECT_DEBUG_CONSOLE_ID }] }); <del> registerEditorContribution('editor.contrib.callStack', LazyCallStackEditorContribution, EditorContributionInstantiation.Eager); registerEditorContribution(BREAKPOINT_EDITOR_CONTRIBUTION_ID, LazyBreakpointEditorContribution, EditorContributionInstantiation.Eager); registerEditorContribution(EDITOR_CONTRIBUTION_ID, LazyDebugEditorContribution, EditorContributionInstantiation.Eager); </del> <ins> registerEditorContribution('editor.contrib.callStack', CallStackEditorContribution, EditorContributionInstantiation.AfterFirstRender); registerEditorContribution(BREAKPOINT_EDITOR_CONTRIBUTION_ID, BreakpointEditorContribution, EditorContributionInstantiation.AfterFirstRender); registerEditorContribution(EDITOR_CONTRIBUTION_ID, DebugEditorContribution, EditorContributionInstantiation.BeforeFirstInteraction); </ins> const registerDebugCommandPaletteItem = (id: string, title: ICommandActionTitle, when?: ContextKeyExpression, precondition?: ContextKeyExpression) => { MenuRegistry.appendMenuItem(MenuId.CommandPalette, {

Discussion:
With I went over most editor contributions (50+) and adopted idle value instantiation where I could reason that they would still work correctly. But some editor contributions interact in more complex ways, sometimes with each other, and I wasn't sure. Hence, this issue. I would like to ask that all calls explicitly use . If a contribution uses eager, a reason should be written as a comment next to it. There are multiple options available: Some things to keep in mind when changing an editor contribution to something else than : the contribution will not be created necessarily before a text model is attached. Normally, a contribution is created so early, at a point when the editor has no models. So it is safe for a contribution to simply use to check if the contribution needs to do anything. When being instantiated later, it is possible that the contribution will be created at a time when the editor already has a model, so the contribution should be prepared to deal with that in the ctor. if a contribution needs to be activated via editor events (pasting, typing, mouse events), then most likely you can use . if a contribution is mostly driven by actions or commands, then the contribution will be instantiated when the first action that needs it is executed, so it is safe to use . if a contribution is only driven by actions or commands, it is safe to use . Anyways, here's the remaining list of contributions for which I wasn't sure what would be correct:
Replacing me with who took over quick pick.
Change:
} private toDescriptionRange(setting: ISetting, match: IMatch, lineIndex: number): IRange { <ins> const descriptionRange = setting.descriptionRanges[lineIndex]; if (!descriptionRange) { // This case occurs with added settings such as the // manage extension setting. return nullRange; } </ins> return { <del> startLineNumber: setting.descriptionRanges[lineIndex].startLineNumber, startColumn: setting.descriptionRanges[lineIndex].startColumn + match.start, endLineNumber: setting.descriptionRanges[lineIndex].endLineNumber, endColumn: setting.descriptionRanges[lineIndex].startColumn + match.end </del> <ins> startLineNumber: descriptionRange.startLineNumber, startColumn: descriptionRange.startColumn + match.start, endLineNumber: descriptionRange.endLineNumber, endColumn: descriptionRange.startColumn + match.end </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/No 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.84.2 OS Version: macOS Sonoma 14.1 M1/arm64 Steps to Reproduce: VSC with extensions disabled settings panel 'a' or 'ai' or 'smart ai' in search field hangs and throws below error Logs:
Change:
assert(validateFileName(wsFolder, 'foobar') === null); assert(validateFileName(wsFolder, 'all/slashes/are/same') === null); assert(validateFileName(wsFolder, 'theres/one/differentslash') === null); <del> assert(validateFileName(wsFolder, '/slashAtBeginning') === null); </del> <ins> assert(validateFileName(wsFolder, '/slashAtBeginning') !== null); </ins> // validation should detect if user tries to add a child to a file const fileInRoot = createStat('/fileInRoot', 'fileInRoot', false, false, 8096, d);

Discussion:
Testing Have a file in a folder : Like this: ! Right click and rename Type Observe the message: ! That message is wrong, because pressing Enter will create a folder and then move file into it.
I think the message can be improved but the behavior is by design
Yeah, that's what I'm trying to say, that the help message is wrong

Testing Have a folder hierarchy Create a new file and type The help message reads: Pressing Enter will create a file in The help message hints that would be a folder, but will be a file. I suggest something like: in this case ! !
Change:
DOM.hide(this.templateData.collapsedPart); this.removeInputCollapsePreview(); DOM.show(this.templateData.outputContainer); <del> this.templateData.container.classList.toggle('collapsed', false); </del> this.templateData.container.classList.toggle('output-collapsed', false); this._outputContainerRenderer.viewUpdateShowOutputs(); this.relayoutCell();

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/No <!-- 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.59-Insider OS Version: Windows 10 Steps to Reproduce: a notebook a cell cells are rotated 270 degrees. Seems to be because we use the 'collapsed' classname for cell collapse, and loads a stylesheet which applies to the classname. This stylesheet is not loaded in desktop VS Code so the problem seems to only impact Codespaces This is particularly unfortunate for the interactive window because all code cell inputs are collapsed by default, but it also impacts any collapsed cell in native notebooks all up. !
I filed this a long time ago, but this is pretty bad, I will just change the styles to work around it in the meantime
fix proposal from
Change:
return setup(true); } <ins> function setupMutex() { try { var Mutex = (<any> require.__$__nodeRequire('windows-mutex')).Mutex; new Mutex('vscode'); } catch (e) { // noop } } </ins> // On some platforms we need to manually read from the global environment variables // and assign them to the process environment (e.g. when doubleclick app on Mac) getUserEnvironment()

Discussion:
This will let the Setup installer not go ahead and perform an update/install if Code is running.
We already have a native app mutex node module which we could use for this.
Change:
} const clipboardService = accessor.get(IClipboardService); <del> const quickInputService = accessor.get(IQuickInputService); </del> <ins> const instaService = accessor.get(IInstantiationService); </ins> const snippet = await new Promise<Snippet | undefined>((resolve, reject) => {

Discussion:
Snippets that use the SELECTION variable should be grouped into a new "Surround With..."-command, e.g support selection with try-catch or if-else. We should also consider not showing such snippets in IntelliSense because the selection is always where users are typing.
closing this in favour of
After and given that a dedicated command is more visible we should add this
hi, Thanks for your adding support for outside code and could please add some identification for those snippet support and/or when users are using command e.g.: when using insert snippet, users never know which snippet is outside-code supported there is the ui: ! and the snippet code from C# official extension ! for that reason, I have to add some tip/text for the name of snippet when I develop the snippet extension. after that, user could know that which is outside code supported. ! I could do it for myself and my extension, I there are many snippets that have no tip or identification Please add some identification for those outside code supported in UI when users using insert snippet. that will be useful and helpful for user to distinguish
! maybe some icon for text is good
BTW, there is another issues related to this. please
hi, should I file a new issue?
To verify open a typescript files select some code select F1 Surround with Snippet try-catch ensure the selected code is surrounded by the snippet
Verification looked good with both TS and CS files.
Change:
}, {} as Record<string, boolean>); const keysToRemove = [ /^ELECTRON_.+$/, <del> /^VSCODE_(?!SHELL_LOGIN).+$/, </del> <ins> /^VSCODE_(?!(PORTABLE|SHELL_LOGIN)).+$/, </ins> /^SNAP(|_.*)$/, /^GDK_PIXBUF_.+$/, ];

Discussion:
Does this issue occur when all extensions are disabled?: No <!-- 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.74.2 OS Version: Arch with Linux v6.1.3 Steps to Reproduce: VS Code in portable mode (VSCODEPORTABLE env var set to a directory) a file in the instance by typing in the integrated terminal. Code opens a new window rather than opening the file as a tab, and the new window reads userdata from instead of "$VSCODEPORTABLE". Possible solution: I investigated and noticed that the integrated terminal in VS Code reads the env var as unset even if it is set by the OS. As a workaround, I have this to my config, and it works:
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!
Happens on the latest version as well: !
Oh if we just need set for this to work I can remove that from the env sanitization.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!