jiebi/CodeConvo huggingface dataset:
Change:
} const firstNonWhitespaceIndex = firstNonWhitespaceIndices[i]; <del> const wrappedTextIndentLength = wrappedTextIndentLengths[i]; </del> <ins> const wrappedTextIndentLength = wrappedTextIndentLengths[i] + additionalIndentSize; </ins> const visibleColumns = allVisibleColumns[i]; const breakOffsetsVisibleColumn: number[] = [];

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.59.0 OS Version: Debian 10 Monaco Version: 0.27.0 Steps to Reproduce VS Code: Wrapping Indent to Indent and Wrapping Strategy to Simple (default). a line with wider/narrower characters, note it doesn't wrap at the right-border (after/before, respectively) but does indent. Wrapping Strategy to Advanced. line now wraps at the right-border, but no longer indents. : The line wraps at the right-border and indents one tab after doing so Monaco Playground script: Separately, the indent and the wrapping work. Together, they fail. Given that both halves of this (indent, wrap-breakpoint) work when the other is disabled, it looks like a bug to me.
<strikeDoes help you?</strikeIgnore that - I see you are already experimenting with it.
/assign
is currently not compatible with . The reason is the following: means that we delegate the wrap points computations to the browser. This works by us creating a dom node for each line of the editor, setting the contents of each dom node to the text on each line, and then setting a specific width. We then proceed to use browser APIs to detect the wrapping points. This is super slow (causes a forced browser layout).

To add support for , we would need to do the above twice: the first time with the dom nodes set to the width of the editor, then detect the wrapping points of each first line, and then repeat this process again with all the dangling lines, but this time with a dom node width smaller than the editor width (i.e. editor width - indent width). This would be double super slow (it would cause a forced browser layout again). We have therefore opted to not support with .
Wouldn't doing something like on the DOM node allow it to be done in one pass?
Yes, indeed, that seems to do the trick! (I tried at ). Would you be interested in contributing this as a PR. The relevant building is and that method could get passed in the , and depending on that use your technique.
Well, that was a trivial fix. Only change from my suggestion is to use the size of spaces instead of ch.
Change:
when: ContextKeyExpr.or(IsWindowsContext, IsLinuxContext), primary: KeyMod.CtrlCmd | KeyCode.UpArrow, weight: KeybindingWeight.EditorContrib, <ins> }, { when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_QUICK_CHAT), primary: KeyMod.CtrlCmd | KeyCode.DownArrow, weight: KeybindingWeight.WorkbenchContrib, </ins> } ] });

Discussion:
uses quick chat and has found that going between the input and the response is cumbersome because of our underlying list structure. This is in particular an issue because we now have many hyperlinked tab stops. ! We should provide a way to go between the input and the focused response. AFAICT, there is not a way to do this. Pressing seems to focus the input (unexpectedly), but there's no way to get back to the response. Thoughts?
Makes sense. Probably just need to handle the keybindings better
these probably just need logic for QC
Tyler figured out that there is a way to do this, but it's in the reverse direction from what one might expect based on tab order. Use to focus the input and to focus the last response.
Talked to JooYoung and it's fine to have these reversed, we'll want to be sure that using doesn't still focus the input box.
working afaict - and for response -input and vice versa, tab works fine as well
Change:
let logger: IRPCProtocolLogger | null = null; if (LOG_EXTENSION_HOST_COMMUNICATION || this._environmentService.logExtensionHostCommunication) { logger = new RPCLogger(kind); <ins> } else if (TelemetryRPCLogger.isEnabled()) { logger = new TelemetryRPCLogger(this._telemetryService); </ins> } this._rpcProtocol = new RPCProtocol(protocol, logger);

Discussion:
re We know from telemetry that deserialising and serialising RPC messages can become costly and this issue to follow up on that. For now, let's add telemetry if any of the API implementations send or receive unexpected large amount of data. We usually cap those but it is likely that we are missing a couple of cases
Change:
.forEach(p => this.eventuallyScanPossibleGitRepository(p)); }; <del> const statusListener = repository.onDidRunGitStatus(checkForSubmodules); </del> <ins> const updateMergeChanges = () => { // set mergeChanges context const mergeChanges: Uri[] = []; for (const { repository } of this.openRepositories.values()) { for (const state of repository.mergeGroup.resourceStates) { mergeChanges.push(state.resourceUri); } } commands.executeCommand('setContext', 'git.mergeChanges', mergeChanges); }; const statusListener = repository.onDidRunGitStatus(() => { checkForSubmodules(); updateMergeChanges(); }); </ins> checkForSubmodules(); const dispose = () => {

Discussion:
have a merge conflict have multiple repos open open a file with conflicts :bug: depending on which repo was refreshed last the blue button shows/hides
This is because the command runs in the scope of a single  and thereby competes with others. I have copied an here and I am unsure where the good place to set context keys is
Which blue button are you describing and how is it supposed to act? (just trying to verify)
Change:
return secondLastStickyNode.position + secondLastStickyNode.height !== lastStickyNode.position; } <del> addDisposable(disposable: IDisposable): void { this._register(disposable); </del> <ins> animationStateChanged(previousState: StickyScrollState<T, TFilterData, TRef>): boolean { if (!equals(this.stickyNodes, previousState.stickyNodes, stickyScrollNodeEquals)) { return false; } if (this.count === 0) { return false; } const lastStickyNode = this.stickyNodes[this.count - 1]; const previousLastStickyNode = previousState.stickyNodes[previousState.count - 1]; return lastStickyNode.position !== previousLastStickyNode.position; </ins> } }

Discussion:
Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.
Change:
} }); <ins> function overrideActionForActiveExtensionEditorWebview(command: MultiCommand | undefined, f: (webview: Webview) => void) { command?.addImplementation(105, (accessor) => { const editorService = accessor.get(IEditorService); const editor = editorService.activeEditorPane; if (editor instanceof ExtensionEditor) { if (editor.activeWebview) { f(editor.activeWebview); return true; } } return false; }); } overrideActionForActiveExtensionEditorWebview(CopyAction, webview => webview.copy()); overrideActionForActiveExtensionEditorWebview(CutAction, webview => webview.cut()); overrideActionForActiveExtensionEditorWebview(PasteAction, webview => webview.paste()); </ins> const workbenchRegistry = Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench); class ExtensionsContributions implements IWorkbenchContribution {

Discussion:
A lot of extensions have configuration code. It is extremely annoying that since some version ago we are unable to copy anything from that pane, mouse or keyboard. Steps to reproduce: Go to extension description Try to copy something Video:
See I'm surprised that you can't copy using the keyboard. What key sequence are you using? What command(s) does your Keyboard Shortcuts page show that bound to?
Im using the usual cmd+c which works in other apps. And cmd+c also works in the editor mode, terminal mode - so i think its not my key bindings customization. I recorded video in presenter mode (displaying what i press) showing copying something else + not working for ext description:
Change:
border-left: 3px solid rgba(255, 160, 0, 1); } <ins> .vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before { border-left: none; } </ins> img { max-width: 100%; max-height: 100%;

Discussion:
! Note the extra bar the right of the blue block quote bar
I hope my fix will work for you. :smile:
Change:
document.head.appendChild(style); style.textContent = `body { background-color: ${shellBackground}; color: ${shellForeground}; margin: 0; padding: 0; }`; <ins> // set zoom level as soon as possible if (typeof data?.zoomLevel === 'number' && typeof globalThis.vscode?.webFrame?.setZoomLevel === 'function') { globalThis.vscode.webFrame.setZoomLevel(data.zoomLevel); } </ins> // restore parts if possible (we might not always store layout info) if (data?.layoutInfo) { const { layoutInfo, colorInfo } = data;

Discussion:
! cc
is this with latest from main, eg out of source? I believe there is no insiders with the larger titlebar (due to CC)
the activity bar also changes size... there must be more to it. I guess rapid render is getting wrong values. Do you use zoom?
Correct, this is main on OSS. Confirmed that I wasn't zoomed.
is there some conflict of zoom here? Even the watermark renders for a bit slightly enlarged before shrinking?
I can only reproduce with zoom enabled, e.g zoom in once or twice reload workbench rapid render but also water mark are wrongly sized during load
LGTM other than the window controls overlay (WCO), which is being tracked at
Change:
this._contextViewService.hideContextView(); this._updateContextKeys(provider, false); // HACK: Delay to allow the context view to hide #186514 <del> setTimeout(() => provider.onClose(), 100); </del> <ins> if (provider.id === AccessibleViewProviderId.Terminal) { provider.onClose(); } else { setTimeout(() => provider.onClose(), 100); } </ins> }; const disposableStore = new DisposableStore(); disposableStore.add(this._editorWidget.onKeyDown((e) => {

Discussion:
Type: <bBug</bCC When I type something in terminal Accessible View, the first letter simply distroys the open Accessible View and it is not passed onto terminal. Instead, the second letter typing is passed to the terminal. VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-20T05:34:58.027Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (93)</summaryExtensionVersion ------ android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.2 openscad1.2.2 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.5.3 doxdocgen1.4.0 vscode-markdownlint0.52.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.26.0 gitlens14.4.0 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-google-translate1.4.13 codespaces1.16.0 copilot1.128.504 copilot-chat0.9. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.74.0 overleaf-workshop0.3.1 cslpreview0.2.2 easy-snippet0.6.3 path-autocomplete1.25.0 latex-workshop9.14.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 vscode-bard0.0.10 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.10 git-graph1.30.0 vscode-docker1.27.0 black-formatter2023.5. flake82023.8.0 isort2023.11. python2023.19.

vscode-pylance2023.10.41 jupyter2023.10. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.318.0 remote-ssh0.107. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.24.0 azure-repos0.38.0 cmake-tools1.15.31 cpptools1.17.5 cpptools-extension-pack1.3.0 js-debug-nightly2023.10.1717 powershell2023.9.5 remote-explorer0.5. remote-repositories0.40.0 vscode-github-issue-notebooks0.0.130 vscode-selfhost-test-provider0.3.19 vscode-serial-monitor0.10.0 vsliveshare1.0.5883 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.105.0 r-debugger0.5.4 java1.23.0 vscode-xml0.26.1 r2.8.2 multi-command1.6.0 vscode-deepl1.0.6 abc-music0.4.0 lua3.7.0 latex-utilities0.4.10 cmake0.0.17 errorlens3.14.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6.0 vscode-java-debug0.54.0 vscode-java-dependency0.23.1 vscode-java-pack0.25.14 vscode-java-test0.40.0 vscode-maven0.42.0 markdown-all-in-one3.5.1 grammarly0.22.1 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for reporting!
Change:
continue; } originalPaths = source.paths; <del> args = source.args; </del> <ins> // if there are configured args, override the default ones args = profile.args || source.args; </ins> } else { originalPaths = Array.isArray(profile.path) ? profile.path : [profile.path]; args = platform.isWindows ? profile.args : Array.isArray(profile.args) ? profile.args : undefined;

Discussion:
fixed with
To verify on Windows: a new terminal profile with source set to powershell a -NoProfile arg sure it launches a no profile pwsh session
Change:
protected _getActionBarOptions(): IActionBarOptions { return { <del> orientation: ActionsOrientation.HORIZONTAL_REVERSE </del> <ins> orientation: ActionsOrientation.HORIZONTAL </ins> }; }

Discussion:
have a file with an error press F8 press Ctrl+M to toggle that Tab moves focus press Tab once the focus moves first to the close button, then the up button, and finally the down button. ! <details<summaryOLD DESCRIPTION from Details:​ ​​ ​​ Browser Details: ​​​ Microsoft Edge 44..1.0, Google Chrome 75.0.3770.142​ ​OS: Windows (Version 1903, Build: .113)​​ ​ Repro Steps: ​​​ 1) Hit the URL ""​​ 2) Navigate till "Playground" link and press enter​​ 3) Tab till editor field and type any wrong code. ​ 4) Press F8 or Shift+F8 to open the errors​ 5) Verify the focus order between "Go to next problem, Go to previous problem and close" buttons​ Actual Result: ​​​ Focus order is not proper between "Go to next problem, Go to previous problem and close" buttons. Focus order is given in the wrong sequence as close--Go to previous problem --Go to next problem​ ​​ Expected Result: ​​​ When user press Tab key focus order should in the sequence as ​ Go to next problem--Go to previous problem--close​ ​ User Impact: ​​​ Keyboard users will find difficult to work if focus order is not proper between the controls​ Video Attachment: </details
Change:
import * as assert from 'assert'; import { Event } from 'vs/base/common/event'; import URI from 'vs/base/common/uri'; <del> import { IDisposable, dispose } from 'vs/base/common/lifecycle'; </del> <ins> import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle'; </ins> import { TextModel } from 'vs/editor/common/model/textModel'; import { Handler } from 'vs/editor/common/editorCommon'; <del> import { ISuggestSupport, ISuggestResult, SuggestRegistry, SuggestTriggerKind } from 'vs/editor/common/modes'; </del> <ins> import { ISuggestSupport, ISuggestResult, SuggestRegistry, SuggestTriggerKind, LanguageIdentifier, TokenizationRegistry, IState, MetadataConsts } from 'vs/editor/common/modes'; </ins> import { SuggestModel, LineContext } from 'vs/editor/contrib/suggest/suggestModel'; import { TestCodeEditor, MockScopeLocation } from 'vs/editor/test/browser/testCodeEditor'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';

Discussion:
VSCode Version: Version 1.19.1 (1.19.1) 0759f77bb8d86658bc935a10a64f6182c5a1eebaOS Version: macOS, 10.12.6 Steps to Reproduce: TypeScript React, and Reproduces without extensions: Yes.
For the case: where the user has just typed , returns false since returns . This in turn is caused by having the following language ranges for the string : where = and = . These language ranges cause to take as the current word, which does not match against the known word patterns
Any update on this? The Ctrl-Space works and provides the correct autocomplete options for props with associated type. Would be nice if I didn't have to do that each time.
Have the same problem, but wonder about: "... autocomplete options for props ...". Is VS Code capable to autocomplete my custom from an imported component?
Change:
if (isNonEmptyArray(notification.actions && notification.actions.secondary)) { actions++; // secondary actions } <del> this.offsetHelper.style.width = `${450 /* notifications container width */ - (10 /* padding */ + 26 /* severity icon */ + (actions * (24 + 8)) /* 24px (+8px padding) per action */ - 4 /* 4px less padding for last action */)}px`; </del> <ins> this.offsetHelper.style.width = `${450 /* notifications container width */ - (10 /* padding */ + 30 /* severity icon */ + (actions * 30) /* actions */ - (Math.max(actions - 1, 0) * 4) /* less padding for actions > 1 */)}px`; </ins> // Render message into offset helper const renderedMessage = NotificationMessageRenderer.render(notification.message);

Discussion:
the notification content is sufficiently long, insufficient height is allocated for the action buttons to grow, consequently they appear cramped and lack border radius a notification is focused the focus border radius is truncated !
The border radius issue on the buttons still occurs if the VS Code window is resized !
I cannot reproduce when resizing the window, are you sure you tested on latest? Here is the sample code I run from a command to trigger this: !
Yeah, still repros in today's insiders <img width="328" alt="image" src=""
Can you distill better steps for me to reproduce exactly into this state, ideally even running out of sources?
What I do is open the VS Code repo in VS Code Insiders without having first actioned the notifications above, you can probably trigger the notifications by starting with fresh user data and extensions dir. Then resize the VS Code window so that the notification text starts to wrap. Eventually the button radius gets cut off when I do this.
though I don't see the button's border getting cut off but I do see the whole notification border is getting cut off at the corner ! steps to reproduce prerequisite -have 2 profiles with recommended extension not installed to switch the profiles will show the above dialog click on it so that notification get's focus and see the border at the corner is not rounded properly
but for this to reproduce you need to make the window small enough that the notification itself gets smaller in width right? In that case, there is a slight chance that the text of the notification wraps to the next line and then pushing the buttons down. Notifications do not have any logic to grow larger to make room for the wrapped text because we assume that they are small enough that a user would not cause them to shrink. You would need to make the window size smaller than for this to happen (notifications are wide). I still fee the original issue is addressed, meaning that the notification when opening applies the correct size.
! !
Yes this is true, I will close and mark verified
Change:
handler: (accessor) => { const focused = accessor.get(IListService).lastFocusedList; <del> // Ensure DOM Focus ensureDOMFocus(focused); </del> // List if (focused instanceof List || focused instanceof PagedList) { const list = focused;

Discussion:
I like the up / down keyboard navigation over notebook cells, but when you try to use to navigate the order is very unexpected. a notebook. I am using my- my work cell -Focus is on GitHub issues label -focus seems lost -focus is on the start of the document, even though I did not traverse until the end of the docuemnt Ideally tab should go in visual order. If that is not possible should move focus out of the notebook. Similarly tree tab is not used to move focus so users use up / down, but pressing tab focuses out of the tree and does not lead to unexpected jumping of focus.
Fixed in this change Get rid of output focus sink when cell has no output, to avoid a dead spot when tabbing through cell (step 3 in OP) Fix the toolbar losing focus shortly after tabbing onto it, by avoid context key churn Fix domFocus when focus is in a different element from the one that is selected (depends on an earlier PR in )
Much better now. Thanks for fixing this.
Change:
* be more relevant). */ export class TerminalMainContribution extends Disposable implements IWorkbenchContribution { <ins> static ID = 'terminalMain'; </ins> constructor( @IEditorResolverService editorResolverService: IEditorResolverService, @IEmbedderTerminalService embedderTerminalService: IEmbedderTerminalService, <ins> @IWorkbenchEnvironmentService workbenchEnvironmentService: IWorkbenchEnvironmentService, </ins> @ILabelService labelService: ILabelService, <ins> @ILifecycleService lifecycleService: ILifecycleService, </ins> @ITerminalService terminalService: ITerminalService, @ITerminalEditorService terminalEditorService: ITerminalEditorService, @ITerminalGroupService terminalGroupService: ITerminalGroupService,

Discussion:
changed to move to but this caused a feature for Codespaces to stop working where the terminal will start streaming in the init logs before the workbench has fully loaded. Ideally we would start it up on Starting only on remote, if we can't do that we need to move it back to Starting in the meantime. cc
We know if we are connected to a remote from the environment service via probing for .
We don't have access to services at workbench contrib registration do we?
no, but you could have 1 eager workbench contrib that depends on the environment service to decide if a second thing should get instantiated or not.
Marked verified, only can properly verify it
this seems to still be failing, the terminal does not show up until the codespace is fully created and the workbench initialized
Verified by