jiebi/CodeConvo huggingface dataset:
Change:
private sash!: Sash; private model: ChatModel | undefined; private _currentQuery: string | undefined; <ins> private maintainScrollTimer: MutableDisposable<IDisposable> = this._register(new MutableDisposable<IDisposable>()); </ins> constructor( private readonly _options: IChatViewOptions,

Discussion:
Testing I think that growing quick chat when you scroll is an interesting idea, but I would reset the size back to how it was when you reopen quick chat because its harder to manage the size to make it small again. You cannot just scroll to get back where you were.
Ahhh I struggle with this one because it might be that you wanna: scroll back to a former question switch to your editor switch back to that former question which you get with the current behavior. You can get back to the original size if you double click the sash... but that's maybe not obvious.
cc would love your thoughts.
Actually had forgotten that a double click on the sash quickly restores the size, so maybe its not as bad...
I think we'd want some other way to reset as double clicking the sash isn't widely known. Do we reset the height when the question session times out? If so I think it's fine as is.
We no longer do the session time out thing (aka Spotlight inspired timeout). Though, maybe I could introduce a timeout that will, after a few minutes, revert to the dynamic grow behavior?
I guess something like 30 seconds before revert would work alright, either that or some button shows up which lets the user go back to auto.
What are some verification steps for this issue? Here's what I see so far: If I ask a question, it starts from the top and starts growing downwards again If I close the chat and then reopen it a minute later, the answer is still there, and the chat is still expanded. If I ask another question, it starts from the top again, but that's true even if I don't wait 30 seconds If I manually move the sash, it seems like it's just stuck at that size
Verification steps: Ask a question like Get a long answer: ! scroll down to make it bigger ! hide it and show it again quickly. It should still look like screenshot 2 where you see everything hide it and wait 1min and show it again. It should look like screenshot 1 where you only see the last q&a
Change:
import { status } from 'vs/base/browser/ui/aria/aria'; import { KeybindingLabel } from 'vs/base/browser/ui/keybindingLabel/keybindingLabel'; import { Event } from 'vs/base/common/event'; <ins> import { ResolvedKeybinding } from 'vs/base/common/keybindings'; </ins> import { Disposable } from 'vs/base/common/lifecycle'; import { OS } from 'vs/base/common/platform'; import { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from 'vs/editor/browser/editorBrowser';

Discussion:
Testing From gear icon, enable the setting Switch back to the interactive window and see no hint in the input box Reloading the workspace does not help as well <img width="1031" alt="Screenshot 2024-06-25 at 18 49 24" src=""
does shift+enter work as a keybinding?
Yes the keybinding works, issue is only about the hint UI.
the hint text keeps saying "Press Command+Enter to execute" and doesn't update depending on the setting. I was expecting the hint to display "Enter" or "Shift+Enter" depending on the setting.
- can you enable the shift+enter option, run and try to press enter in the input box? Do you get something like this in the troubleshooting logs?
it looks like you may have a custom keyboard layout that changes the key label to . I don't know how many ways there are to modify key labels, so I'll just rely on the order of the keybinding registration to show shift+enter instead of always showing cmd/ctrl+enter. It might still show cmd+enter when in the python REPL experiment with a custom keyboard layout, but I think this is as close as I can reliably get.
verification: with Jupyter and python extensions installed run The execution hint should show in the input box click the gear, change the setting shift+enter setting the hint should update should at least show in the hint with the setting enabled. When disabled, it will either show or
<img width="1381" alt="Screenshot 2024-06-27 at 10 21 16 AM" src=""still occurring - key bindings come in as Resolving meta+[Enter] and Resolving shift+[Enter]
Change:
export class ContextMenuHandler { private focusToReturn: HTMLElement | null = null; <ins> private lastContainer: HTMLElement | null = null; </ins> private block: HTMLElement | null = null; <ins> private blockDisposable: IDisposable | null = null; </ins> private options: IContextMenuHandlerOptions = { blockMouse: true }; constructor(

Discussion:
click to open context menu in text editor +P to open quick open :bug: both context menu and quick open are dismissed !
re: context menu
This is not a regression so assigning to december
I'm going to pass to you for your take. Here's what I found out. When we show the command palette that causes the editor context menu to trigger the hide: This hide, focuses the editor... but in doing so, that causes the Quick Pick's didBlur to hide: which will hide the quick pick if is set to which is the default. This behavior with context menus seems to repro: Always in context menus of the editor Only with custom menus (not native menus) in the rest of the product (tree views, Account/Gear menu, etc)
Two actions here: needs to be removed or handled better (passing that to or menus should follow the logic: if ESC/selection, focus what was previously focused. If dismissed due to focus lost, don't restore focus (this goes to
my suspicion is that the editor contribution is old and unnecessary as the behavior is built-in to the menu widget. Removing it, we can centralize the logic to the menu widget.
re-opening as we still have some work to do on the custom menu side
Change:
return null; } <del> cellMatches = this.textBuffer.findMatchesLineByLine(fullRange, searchData, false, 1000); </del> <ins> cellMatches = this.textBuffer.findMatchesLineByLine(fullRange, searchData, options.regex || false, 1000); </ins> } return cellMatches;

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. --In Jupyter Notebooks, finding witrh regex works but replacing with capturing groups doesn't. I'd like if it does. I tried as in the usual editor, but the replacement treats as literal. I had to work around by copying the code section to the usual editor, and then find and replace. This seems like an inconsistent UX, and personally quite inconvinient.
Should I have opened this at ? If so, please close this so I can move on.
Thanks again for the help, it makes the find experience in notebook closer to the normal text editor one.
did you create a test plan item for this? I just the verification needed to it.
Change:
private _eventDispatcher: NotebookDiffEditorEventDispatcher | undefined; protected _scopeContextKeyService!: IContextKeyService; private _model: INotebookDiffEditorModel | null = null; <del> private _modifiedResourceDisposableStore = new DisposableStore(); </del> <ins> private readonly _modifiedResourceDisposableStore = this._register(new DisposableStore()); </ins> private _outputRenderer: OutputRenderer; get textModel() {

Discussion:
Issue Type: <bBug</bRepro a notebook in the diff view (tested with the github issues notebook) down to another file bug In dev tools, see: VS Code version: Code - OSS Dev 1.55.0 (Commit unknown, Date unknown) OS version: Darwin x64 20.3.0 <details<summarySystem Info</summary </details<details<summaryExtensions (23)</summaryExtensionVersion ------ docs-view0.0.9 vscode-eslint2.1.14 EditorConfig0.16.4 vscode-pull-request-github0.23.1 svg1.4.5 template-string-converter0.4.7 git-graph1.29.0 vscode-language-pack-de1.54.1 vscode-dotnet-runtime1.0.0 vscode-edge-devtools1.1.3 python2021.2. jupyter2021.3. remote-containers0.163.0 remote-ssh0.64.0 remote-ssh-edit0.64.0 azure-account0.9.6 cpptools1.2.2 hexeditor1.4.0 vscode-github-issue-notebooks0.0.68 vscode-markdown-notebook0.0.14 debugger-for-chrome4.12.12 debugger-for-edge1.0.15 shader-toy0.10.15 </details<!-- generated by issue reporter --
I believe that webviews in diff editors are being leaked at the moment. For normal notebooks, I see the webview disposed of in the method: However I don't see the same in notebookTextDiffEditor
Hm, now I'm just more confused. It seems the webviews are not disposed of when the diff editor is closed (and is not fired on the either). However they are disposed of when another notebook diff editor is opened The root cause of this issue is that the webview is no longer in the dom but it also isn't disposed. We then try posting a message to it which causes an exception. Here's the call stack that triggers this error: !
I started to see leaks of recently, which is likely a regression, and probably in the logic.
Change:
private _scrollLeft: number; private _scrollTop: number; <del> private _accessibilitySupport: AccessibilitySupport; private _accessibilityPageSize: number; </del> <ins> private _accessibilitySupport!: AccessibilitySupport; private _accessibilityPageSize!: number; </ins> private _contentLeft: number; private _contentWidth: number; private _contentHeight: number;

Discussion:
default shoudl be 100. As pointed out we should measure if this has a perf impact on Edge, Chromium and FF We can also increase the default value only if we see that a screen reader is detected
Change:
// Splitview widget this.splitview = this.splitviewDisposables.add(new SplitView(parent, { orientation: this.orientation })); this.splitviewDisposables.add(this.splitview.onDidSashReset(() => this.splitview?.distributeViewSizes())); <del> this.splitview.orthogonalEndSash = this._boundarySashes?.bottom; </del> <ins> if (this.orientation === Orientation.HORIZONTAL) { this.splitview.orthogonalEndSash = this._boundarySashes?.bottom; } else { this.splitview.orthogonalStartSash = this._boundarySashes?.left; this.splitview.orthogonalEndSash = this._boundarySashes?.right; } </ins> // Figure out sizing let leftSizing: number | Sizing = Sizing.Distribute;

Discussion:
I like how the sashes are now connected even for diff editor and joined editors, but this does not seem to work when the split editor is split horizontally: !
I didn't even know this was possible!
Change:
registerEditorAction(SelectionToReplAction); registerEditorAction(SelectionToWatchExpressionsAction); registerEditorAction(ShowDebugHoverAction); <ins> registerEditorAction(GoToNextBreakpointAction); registerEditorAction(GoToPreviousBreakpointAction); </ins>

Discussion:
<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issues to prefill these. --- VSCode Version: 1.14.2 OS Version: MacOS Sierra Steps to Reproduce: some breakpoints. to find shortcut to navigate between breakpoints without running the file. <!-- Launch with to check. --Reproduces without extensions: Yes
We accept PRs that fix this - especaially if more users ask for this feature request
Hi, I'm working on this. Will submit a PR soon.
Having this feature could remove the need for bookmarks, fixing
Does not work for me: set breakpoints in various files. run "Go To Next Breakpoint" action Observe: completely random behaviour. Sometimes I can only go through the breakpoints in one file, sometimes I can switch back and forth between two files. But I'm not able to step through all breakpoints in all files in deterministic order.
Dup of
Verified . Marking this as verified as well.
Change:
"configurationDefaults": { "[markdown]": { "editor.unicodeHighlight.ambiguousCharacters": false, <del> "editor.unicodeHighlight.invisibleCharacters": false </del> <ins> "editor.unicodeHighlight.invisibleCharacters": false, "diffEditor.ignoreTrimWhitespace": false </ins> } } },

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --I love that vscode had pylance for python toolchain, this is frustrating when you have a language support but an editor default that does not show syntax error. Please reconsider these samples of scenarios, Python uses indentation to delimit code blocks, which is 2 or 4 leading whitespaces. YAML uses indentation to delimit nesting level, which is also 2 or 4 leading whitespaces. Python is afaik the majority in ML community, see e.g. has 98.0% of python code, both pytorch and tensorflow has a python frontend. YAML has grown popularity comparable to json as configuration tool, e.g. a majority of linter that supports also supports . Ignoring whitespace diff actually leads to syntax error and thus broken code, it is not just a visual difference. <!-- Describe the feature you'd like. --Make this default:
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
Change:
templateData.iconContainer.classList.add(...ThemeIcon.asClassNameArray(historyItemGroup.icon)); } <del> templateData.label.setLabel(historyItemGroup.label, historyItemGroup.description); </del> <ins> templateData.label.setLabel(historyItemGroup.label, historyItemGroup.description, { title: historyItemGroup.ariaLabel }); </ins> templateData.count.setCount(historyItemGroup.count ?? 0); }

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:
? ReuseOrder.PreviouslySelected : renderer.extensionId.value === notebookProviderInfo?.extension?.value ? ReuseOrder.SameExtensionAsNotebook <del> : ReuseOrder.BuiltIn; </del> <ins> : renderer.isBuiltin ? ReuseOrder.BuiltIn : ReuseOrder.OtherRenderer; </ins> return { ordered: { mimeType, rendererId: renderer.id, isTrusted: true }, score: reuseScore | ownScore,

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: Insiders OS Version: Ubuntu Steps to Reproduce: New machine Install VS Code insiders Open an existing notebook text/latext output is rendered by built-in renderer Install jupyter based on VSCodes recommendation Re-load VSCode text/latext output is still rendered by built-in renderer Note: This workflow is not going to work as we know of a lot of text/latext that doesnt' work with the built-in renderer, & novice users won't know that they need to change the renderer to Jupyter Notebook renderer. I've submitted a PR to remove the text/latex renderer from VS Code
I believe this is where we select the renderer (we currently always take the first one): I agree that automatically deprioitizing built-in renderers makes sense
Starting from a clean user-data-dir, I follow the steps, and it picks the built-in one by default. ! If I pick the extension renderer, it seems to remember that selection.
How do I get the latex mime types to show in that picker? I only see one: !
To verify: sure you have the jupyter extension installed and are in an ipynb notebook a normal python cell, run: the output is rendered nicely <img width="515" alt="Screen Shot 2021-11-01 at 9 20 35 AM" src="https://user-"
Change:
tags: ['notebookLayout'], default: false }, <del> [NotebookSetting.codeActionsOnSave]: { markdownDescription: nls.localize('notebook.codeActionsOnSave', 'Run a series of Code Actions for a notebook on save. Code Actions must be specified, the file must not be saved after delay, and the editor must not be shutting down. Example: `"notebook.source.organizeImports": "explicit"`'), type: 'object', additionalProperties: { type: ['string', 'boolean'], enum: ['explicit', 'never', true, false], // enum: ['explicit', 'always', 'never'], -- autosave support needs to be built first // nls.localize('always', 'Always triggers Code Actions on save, including autosave, focus, and window change events.'), enumDescriptions: [nls.localize('explicit', 'Triggers Code Actions only when explicitly saved.'), nls.localize('never', 'Never triggers Code Actions on save.'), nls.localize('explicitBoolean', 'Triggers Code Actions only when explicitly saved. This value will be deprecated in favor of "explicit".'), nls.localize('neverBoolean', 'Triggers Code Actions only when explicitly saved. This value will be deprecated in favor of "never".')], }, default: {} }, </del> [NotebookSetting.formatOnCellExecution]: { markdownDescription: nls.localize('notebook.formatOnCellExecution', "Format a notebook cell upon execution. A formatter must be available."), type: 'boolean',

Discussion:
Testing I have the following set: When using the sample extension at I expect this to not trigger the code action on save but it does do it. Because there is no auto-complete I tried a bunch of other things also to no avail.
Change:
errorTelemetry.dispose(); service.dispose(); <ins> sinon.restore(); </ins> })); test('Unexpected Error Telemetry removes PII', sinonTestFn(function (this: any) {

Discussion:
In short, if you use without calling you are leaking memory. See for the details. I'm seeing a lot of memory used in unit tests and it appears to be coming from sinon. This may be contributing to our unit test OOM issue on Windows 32 bit. Let's see if fixing this lets us run the unit tests again. To fix I have made disposable, and there were some places where tests failed or the refactor seemed larger:
The biggest gain would be from fixing the leak from as it is used many places.
I don't know if you own , but I am looking into a fix for it since it will have the biggest impact.
I've reopened this.
Thanks. I should be careful to not do and instead as that will prevent GitHub from auto closing it
With , I have made disposable and handled disposing it in most tests. There are several places where the way to handle this isn't clear or made test fail when I just naively disposed it. I have them in the issue above.
the instance in is already restored at , but the others should be fixed in Let me know if I miss any! Edit: I ended up making changes in both files.
For those tests where I am just using , should I have to still call or I should wait for your change to dispose the ?
You can wait for my change to dispose the .
FYI Windows ia32 started turning green again
and the only files left are yours. The is now disposable and should be disposed in these test files to properly restore and prevent a memory leak.
Thank you for the fast response everyone!
need help
Change:
) { super(); this._register(Registry.as<IViewsRegistry>(Extensions.ViewsRegistry).registerViewWelcomeContent(TUNNEL_VIEW_ID, { <del> content: `No forwarded ports. Forward a port to access your running services locally.n[Forward a Port](command:${ForwardPortAction.INLINE_ID})`, </del> <ins> content: this.environmentService.remoteAuthority ? nls.localize('remoteNoPorts', "No forwarded ports. Forward a port to access your running services locally.n[Forward a Port]({0})", `command:${ForwardPortAction.INLINE_ID}`) : nls.localize('noRemoteNoPorts', "No forwarded ports. Forward a port to access your locally running services over the internet.n[Forward a Port]({0})", `command:${ForwardPortAction.INLINE_ID}`), </ins> })); this.enableBadgeAndStatusBar(); this.enableForwardedPortsView();

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. --Currently, it says "No forwarded ports. Forward a port to access your running services locally.". But when using the Ports tab locally (no remote), this doesn't have the same meaning because I can already access the port locally. The suggestion is to change the text in the local port forwarding case to show something more meaningful. Just as an example, something like "No forwarded ports. Forward a port to securely access your locally running services over the Internet."
Change:
import { withNullAsUndefined } from 'vs/base/common/types'; import { getVirtualWorkspaceLocation } from 'vs/platform/workspace/common/virtualWorkspace'; <ins> const enum WindowSettingNames { titleSeparator = 'window.titleSeparator', title = 'window.title', } </ins> export class WindowTitle extends Disposable { private static readonly NLS_USER_IS_ADMIN = isWindows ? localize('userIsAdmin', "[Administrator]") : localize('userIsSudo', "[Superuser]");

Discussion:
Testing I think we will soon turn command center on by default. What is the impact on then? I see we are only showing the full title in the hover now, but I wonder if we need another setting (?) so that users still can configure what we show in the command center? ! Or maybe we should find a way to show the even in the command center with ellipsis if overflowing. //cc
Seems reasonable to me
Enabling the command centre removes my custom window title, showing the full path of the currently focussed editor. I find this very useful especially when there are files with the same name but in different directories. Can't the command centre show the full custom window title (without having to hover over it)? Without this, I would permanently disable it.
We can say the default is different but a customisation is honoured
To verify enable command center configure and/or validate that any customization is picked up by the CC reset above settings validate that the CC uses a default
Any reason we wouldn't also apply this with the default setting? My worry is that when we eventually make command center on by default, the setting would basically not work until you change it? I think it looks good when enabled even with default setting: !
The idea is that the CC shows an affordance to do something, like "Search vscode" - we replaced "search" with the icon which watered this down a bit. The worry is that the more title-stuff we put here the less likely it is that folks understand this as affordance