jiebi/CodeConvo huggingface dataset:
Change:
return lines.join('n'); } <ins> private async _getTextModel(resource: URI): Promise<ITextModel | null> { const existing = this._modelService.getModel(resource); if (existing && !existing.isDisposed()) { return existing; } return this._modelService.createModel(resource.fragment, null, resource, false); } </ins> }

Discussion:
Using here, I cannot enter the accessible buffer https://user-
The issue is that here, the default tab behavior is to focus the terminal tabs element edit: hard to repro, that's not the cause
ok this happens when is not applied to . See here that the buffer editor does get focused here, but you cannot see it https://user-
Repro: run some commands - - - Try to wasn't applied to so the accessible buffer isn't visible
https://user-

Currently when you use navigate accessible buffer you get a quick pick with the options, I expected changing these to scroll to the position without accepting it, and escape to revert to the original scroll position.
As part of this, providing ~1/3 of the viewport of context above would also be good
We'd need to think about how we to communicate the preview information to a screen reader user, as a pre"view" is usually visual
I don't think making this available to the screen reader makes sense, it would just complicate navigating the list. It is useful for sighted users though.
Oh I understand now - you mean on change of the active quick pick item, reveal the line and on enter, focus that line (as it already does)
Yep
To verify, in a terminal with shell integration, run some commands. to enter the accessible buffer. to . Without pressing , use the arrow keys to go between the options. It should scroll to the command if it is outside of the viewport.
Works but I opened
Change:
const modifiedMedataRaw = Object.assign({}, this.modified.metadata); const originalCellMetadata = this.original.metadata; for (const key of cellMetadataKeys) { <del> modifiedMedataRaw[key] = originalCellMetadata[key]; </del> <ins> if (key in originalCellMetadata) { modifiedMedataRaw[key] = originalCellMetadata[key]; } </ins> } this.modified.textModel.metadata = modifiedMedataRaw;

Discussion:
[x] Flicker upon reloading VS Code Open a nb diff view Reload VS Code Immediately expand a metadata section Flicker in a few seconds [ ] Even after undoing cell changes, the cell is marked as Open a nb diff view Undo changes to a cell Close the nd diiff view Re-open the same nd diff view The reverted cell is still visible (but collapsed) as its still marked as It should be and hidden [x] After undoing cell changes, keep the cell expanded with focus on the right editor
The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our . Happy Coding!
Found that this is a pre-existing issue
Change:
return true; } <del> private onDragLeave(): void { </del> <ins> private onDragLeave(event: IListDragEvent<T>): void { </ins> this.onDragLeaveTimeout.dispose(); this.onDragLeaveTimeout = disposableTimeout(() => this.clearDragOverFeedback(), 100); <ins> if (this.currentDragData) { this.dnd.onDragLeave?.(this.currentDragData, event.element, event.index, event.browserEvent); } </ins> } private onDrop(event: IListDragEvent<T>): void {

Discussion:
Repro: 2 terminals dragging one it into the actual terminal and pass over the other tab briefly, it will get focused even though the mouse didn't stay there for long enough !
Change:
margin-bottom: 16px; } <ins> li p { margin-bottom: 0.7em; } </ins> ul, ol { margin-bottom: 0.7em;

Discussion:
Type: <bBug</bHere's the markdown content. The following are the effects rendered in different software / website Visual Studio Code ! Visual Studio ! Github a Properties: id href Defines a hyperlink form Stackoverflow ! As you can see in Visual Studio Code, there's a big gap before the sub list, but there's a small gap after the sub list. Now it's too ugly, I think they should at least be consistent. BTW, different themes have no impact on this. VS Code version: Code 1.81.1 (, 2023-08-09T22:22:42.175Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
Change:
*--------------------------------------------------------------------------------------------*/ import { localize } from 'vs/nls'; <del> import { registerColor } from 'vs/platform/theme/common/colorRegistry'; </del> <ins> import { mergeCurrentHeaderBackground, mergeIncomingHeaderBackground, registerColor, transparent } from 'vs/platform/theme/common/colorRegistry'; </ins> export const diff = registerColor( 'mergeEditor.change.background',

Discussion:
Note all three lines highlighted with background color <img width="262" alt="CleanShot 2022-09-08 at 16 01 57 src="https://user-"We only highlight the changed line and specific word. <img width="184" alt="CleanShot 2022-09-08 at 16 02 04 src="https://user-"If we followed the inline style and still rendered a word diff, wouldn't we be able to get away without using the borders to indicate the region? cc
The inline style does this because it has no clue about the actual conflict, it just sees the conflict markers. We do this to show the actual change in that side.
I a hidden setting (default false) so we can play with idea. Personally, I think it hides many important decorations, but I'm open to exploring it. Enabled: ! Disabled: ! The background color disappears when the conflict is handled.
Change:
this.output.error(message); } <ins> public warn(message: string): void { this.output.warn(message); } </ins> }

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Currently signing out of your GitHub account only removes the token from the secret store but the token continues to be valid, which means that if it was leaked the attacker can continue to make use of it. To mitigate this, VS Code should revoke the token on sign out, see this API:
I wish this API didn't require the client secret...
Change:
MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: SPLIT_EDITOR_DOWN, title: localize('splitDown', "Split Down") }, group: '2_split', order: 20 }); MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: SPLIT_EDITOR_LEFT, title: localize('splitLeft', "Split Left") }, group: '2_split', order: 30 }); MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: SPLIT_EDITOR_RIGHT, title: localize('splitRight', "Split Right") }, group: '2_split', order: 40 }); <del> MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: TOGGLE_LOCK_GROUP_COMMAND_ID, title: localize('toggleLockGroup', "Lock Group"), toggled: ActiveEditorGroupLockedContext }, group: '3_lock', order: 10, when: ContextKeyExpr.and(MultipleEditorGroupsContext, IsAuxiliaryEditorPartContext.toNegated()) }); MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: CLOSE_EDITOR_GROUP_COMMAND_ID, title: localize('close', "Close") }, group: '4_close', order: 10, when: MultipleEditorGroupsContext }); </del> <ins> MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: NEW_EMPTY_EDITOR_WINDOW_COMMAND_ID, title: localize('newWindow', "New Window") }, group: '3_window', order: 10 }); MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: TOGGLE_LOCK_GROUP_COMMAND_ID, title: localize('toggleLockGroup', "Lock Group"), toggled: ActiveEditorGroupLockedContext }, group: '4_lock', order: 10, when: ContextKeyExpr.and(MultipleEditorGroupsContext, IsAuxiliaryEditorPartContext.toNegated()) }); MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroupContext, { command: { id: CLOSE_EDITOR_GROUP_COMMAND_ID, title: localize('close', "Close") }, group: '5_close', order: 10, when: MultipleEditorGroupsContext }); </ins> // Editor Tab Container Context Menu MenuRegistry.appendMenuItem(MenuId.EditorTabsBarContext, { command: { id: SPLIT_EDITOR_UP, title: localize('splitUp', "Split Up") }, group: '2_split', order: 10 });

Discussion:
Testing I am wondering if there should be a context menu action for this? !
Yeah, I actually decided to do a bit more: Editor Tab Container Context Menu: <img width="447" alt="image" src=""Empty Editor Group Context Menu: <img width="458" alt="image" src="" to open an empty aux window
Change:
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { List } from 'vs/base/browser/ui/list/listWidget'; <del> import { WorkbenchListFocusContextKey, IListService, WorkbenchListSupportsMultiSelectContextKey, ListWidget, WorkbenchListHasSelectionOrFocus, getSelectionKeyboardEvent, WorkbenchListWidget, WorkbenchListSelectionNavigation, WorkbenchTreeElementCanCollapse, WorkbenchTreeElementHasParent, WorkbenchTreeElementHasChild, WorkbenchTreeElementCanExpand, RawWorkbenchListFocusContextKey, WorkbenchTreeFindOpen, WorkbenchTreeSupportsFind } from 'vs/platform/list/browser/listService'; </del> <ins> import { WorkbenchListFocusContextKey, IListService, WorkbenchListSupportsMultiSelectContextKey, ListWidget, WorkbenchListHasSelectionOrFocus, getSelectionKeyboardEvent, WorkbenchListWidget, WorkbenchListSelectionNavigation, WorkbenchTreeElementCanCollapse, WorkbenchTreeElementHasParent, WorkbenchTreeElementHasChild, WorkbenchTreeElementCanExpand, RawWorkbenchListFocusContextKey, WorkbenchTreeFindOpen, WorkbenchListSupportsFind } from 'vs/platform/list/browser/listService'; </ins> import { PagedList } from 'vs/base/browser/ui/list/listPaging'; import { equals, range } from 'vs/base/common/arrays'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';

Discussion:
I think this came up during the standup today, why is the context key called and not ? //cc
This context key came in quite late via a fix -- . I noticed this standing out because of the default keybindings which seem to mix things up: Giving this a candidate in case we want to align the context key before shipping stable
From
Change:
if (actionViewItem.action.id === Separator.ID) { focusItem = false; } <ins> if (focusItem) { actionViewItem.showHover?.(); } </ins> if (!focusItem) { this.actionsList.focus({ preventScroll }); this.previouslyFocusedItem = undefined;

Discussion:
This ask is from the Copilot team in response to feedback they've received. When something is represented via only an icon, and is focused via keyboard, we should automatically focus the tooltip.
cc
related
we would also want to do this for all toolbars <img width="202" alt="Screenshot 2023-11-01 at 10 12 16 AM" src=""
Just out of curiosity, what does "focus the tooltip mean"? Does it mean "make the tooltip visible"? (sorry- the language is a bit confusing. tooltips are not actually focusable, right?)
yes I think meant to show the hover, not focus it as that would break left/right navigation.
Yep, it just shows the hover, doesn't focus it.
Change:
this.nodes.delete(node.element); } <ins> if (this.identityProvider) { const id = this.identityProvider.getId(node.element).toString(); if (!insertedElementIds.has(id)) { this.nodesByIdentity.delete(id); } } </ins> if (onDidDeleteNode) { onDidDeleteNode(node); } }; <del> return this.model.splice( </del> <ins> const result = this.model.splice( </ins> [...location, 0], Number.MAX_VALUE, children, _onDidCreateNode, _onDidDeleteNode ); <ins> return result; </ins> } private preserveCollapseState(elements: ISequence<ITreeElement<T>> | undefined): ISequence<ITreeElement<T>> {

Discussion:
Issue Type: <bBug</bTesting Repo settings editor to the section click to switch to instead of Bug TOC is collapsed. Any scrolling causes the TOC to be expanded at the correctly again VS Code version: Code - Insiders 1.31.0-insider (, 2019-01-29T06:13:57.866Z) OS version: Darwin x64 18.2.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Probably another case of The TOC tree sometimes maintains its selection/expansion state, sometimes not.
Hey should expansion state be preserved using the string identity? was for focus/selection, this is for expansion state.
Adding myself so I don't forget about this.
Let's merge this early June:
Thanks
Change:
assert.strictEqual(rangeStartsWith(new Range(1, 1, 10, 5), new Range(1, 1, 11, 4)), false); }); <del> test('Active', async () => { </del> <ins> // This test is skipped because the fix for this causes https://github.com/microsoft/vscode/issues/166023 test.skip('Active', async () => { </ins> await withAsyncTestCodeEditorAndInlineCompletionsModel('', { fakeClock: true, provider, }, async ({ editor, editorViewModel, context, model }) => {

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.73.1 OS Version: Windows Steps to Reproduce: Have these internal settings enabled: "editor.inlineSuggest.allowQuickSuggestions": true, "editor.inlineSuggest.allowSuggestOnTriggerCharacters": true The Intellisense interaction with grey text is awesome! But I noticed some flickering. Here is the GIF. ! I grabbed screenshots to make the flickering clear: WLC prediction is in Italics ! When Intellisense is up, Intellisense text is in Italics and wlc prediction is not. ! When .is typed, there is a small latency where wlc prediction disappears. This is because . is a trigger character for Intellisense so first it will process Intellisense and then request the wlc inlineCompletionProvider. ! After that small latency, the wlc prediction shows up again in Italics ! So, the 2 main problems here are 1) When Intellisense pops up while walking the prediction, the prediction goes from Italics to non-Italics. It goes back to Italics when Intellisense is dismissed (either by manual dismissal or item committed). In VS, we keep the font for grey text the same regardless of whether Intellisense is up or not, that would be helpful in VS Code. 2) The small delay that happens when a trigger character is hit and the wlc prediction disappears and comes back again. cc
This is normal, I use Copilot and experience the same thing.

I believe this is not a bug but a slight delay in rendering.
I cannot reproduce: ! Please log all calls from VS Code into your implementation of the inline completions provider and send me that log.
Here are the logs, lmk if you need anything else.
I was able to repro the bug in code-oss. ghostText is indeed when the flickering happens. I captured a GIF of the logs so you can see at what point ghostText becomes undefined. ! Here are the logs
I was also able to repro this bug in the sample extension. I used the extension from here - !
Verified that inline completions do not flicker anymore.
Change:
if (Array.isArray(item.completion.additionalTextEdits)) { <ins> // cancel -> stops all listening and closes widget this.model.cancel(); </ins> // sync additional edits const scrollState = StableEditorScrollState.capture(this.editor); this.editor.executeEdits(

Discussion:
Version: 1.77.0-insider (Universal) Commit: Date: 2023-03-03T05:23:13.637Z Electron: 19.1.11 Chromium: 102.0.5005.196 16.14.2 V8: 10.2.154.26-electron.0 OS: Darwin arm64 20.6.0 Sandboxed: Yes ProductName: macOS ProductVersion: 11.7.4 BuildVersion: 20G1120 <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes Steps to Reproduce: the following extension sample: a text document. and type falls into an infinite loop https://user-
I can reproduce. Thanks for reporting this, looking into this asap
To reproduce use completion provider from above have a text file with  type  after the existing  and select the second option The issue is computing alternative suggestions (for tab complete). That trips on an invalid state because the chosen (start) index doesn't exist anymore. That's because the model updated in response to applying the additional edits.
Change:
this._register(this.textFileService.untitled.onDidChangeEncoding(model => this.onResourceEncodingChange(model.resource))); this._register(this.textFileService.files.onDidChangeEncoding(model => this.onResourceEncodingChange((model.resource)))); this._register(Event.runAndSubscribe(TabFocus.onDidChangeTabFocus, () => this.onTabFocusModeChange())); <ins> const viewKey = new Set<string>(); viewKey.add('focusedView'); this._register(this.contextKeyService.onDidChangeContext((c) => { if (c.affectsSome(viewKey)) { const terminalFocus = this.contextKeyService.getContextKeyValue('focusedView') === 'terminal'; const context = terminalFocus ? 'terminal' : 'editor'; if (this._previousViewContext === context) { return; } this._previousViewContext = context; this.onTabFocusModeChange(); } })); </ins> } private registerCommands(): void {

Discussion:
Testing into the editor. status bar still says "Tab Moves Focus". I think I'd only expect it to say that when I'm focused in the terminal.
If you toggled it to on in the editor before focusing the terminal, then this is expected. We remember the toggled state for each context until the window is reloaded and it gets reset to the configured value I realize that's kind of confusing and was not how I initially implemented this
I never toggled it at all, this was just using the settings.

Testing an editor and write something in it. tab until you reach the terminal. Type something in the terminal. . Realize that tab is correctly not moving focus in the terminal. command "Toggle Tab Key Moves Focus" out of the terminal and keep tabbing until you get back to your editor. something in the editor. again until you reach the terminal. something in the terminal. to tab out of the terminal. It looks like tab moves focus as toggled itself off. Tab moves focus seems to be off for both terminal and editor at this point until reload.
I can also cause similar behavior if I flip the settings.
what is supposed to happen now? What I think I expect to happen (and isn't happening): If I run "Toggle tab key moves focus" while in a place where it doesn't move focus via setting, then it now globally moves focus. If I run "Toggle tab key moves focus" while in a place where it does move focus, then it now globally does not move focus. However, I'm not a "tab moves focus" user, so maybe my expectations are bogus.
Thank you for testing. Those expectations are correct, except that the toggling does not apply globally - it is per area. So, if I have in settings: terminal tab focus mode: on editor tab focus mode: off where: = status bar indicator = no status bar indicator focus the terminal focus the editor focus the terminal and toggle it off focus the editor and toggle it on focus the terminal focus the editor reload the window and focus the terminal focus the editor I see that this is not working atm because I'm not reacting to configuration changes
fyi for easier testing since the command palette can cause the terminal to no longer be focused, I'd suggest using the keybinding to toggle tab focus mode
Change:
import { Emitter, Event } from 'vs/base/common/event'; import { Disposable, DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; <del> import { IBreadcrumbsDataSource, IOutline, IOutlineCreator, IOutlineListConfig, IOutlineService, OutlineChangeEvent, OutlineConfigKeys, OutlineTarget, } from 'vs/workbench/services/outline/browser/outline'; </del> <ins> import { OutlineConfigCollapseItemsValues, IBreadcrumbsDataSource, IOutline, IOutlineCreator, IOutlineListConfig, IOutlineService, OutlineChangeEvent, OutlineConfigKeys, OutlineTarget, } from 'vs/workbench/services/outline/browser/outline'; </ins> import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; import { Registry } from 'vs/platform/registry/common/platform'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle';

Discussion:
Testing Setting Open a github issue notebook You get: <img width="283" alt="image" src="https://user-"
Change:
folders.push({ workingChanges, name: name ?? '' }); } <ins> if (!hasEdits) { this.logService.info('Edit Sessions: Skipping storing edit session as there are no edits to store.'); if (fromStoreCommand) { this.notificationService.info(localize('no edits to store', 'Skipped storing edit session as there are no edits to store.')); } return undefined; } </ins> const data: EditSession = { folders, version: 1 }; try {

Discussion:
Testing If there are no changes, we should not be able to create a new edit session. In this particular case, I would expect that an information message is being shown, and that the existing edit session is not being overwritten.
Change:
// < --- Output Editor --> <del> const OUTPUT_EDITOR_BACKGROUND = registerColor('outputEditor.background', { </del> <ins> const OUTPUT_VIEW_BACKGROUND = registerColor('outputView.background', { </ins> dark: null, light: null, hcDark: null, hcLight: null <del> }, localize('outputEditorBackground', "Output editor background color.")); </del> <ins> }, localize('outputViewBackground', "Output view background color.")); </ins> <del> registerColor('outputEditorStickyScroll.background', { dark: OUTPUT_EDITOR_BACKGROUND, light: OUTPUT_EDITOR_BACKGROUND, hcDark: OUTPUT_EDITOR_BACKGROUND, hcLight: OUTPUT_EDITOR_BACKGROUND }, localize('outputEditorStickyScrollBackground', "Output editor sticky scroll background color.")); </del> <ins> registerColor('outputViewStickyScroll.background', { dark: OUTPUT_VIEW_BACKGROUND, light: OUTPUT_VIEW_BACKGROUND, hcDark: OUTPUT_VIEW_BACKGROUND, hcLight: OUTPUT_VIEW_BACKGROUND }, localize('outputViewStickyScrollBackground', "Output view sticky scroll background color.")); </ins> // < --- Banner --- >

Discussion:
Followup from I wouldn't call the color . For the user it is not an editor, just a view. Either or