jiebi/CodeConvo huggingface dataset:
Change:
} const items = vm.items.read(reader); return items.map(d => { <del> const item = store.add(new VirtualizedViewItem(d, this._objectPool, this.scrollLeft)); </del> <ins> const item = store.add(new VirtualizedViewItem(d, this._objectPool, this.scrollLeft, delta => { this._scrollableElement.setScrollPosition({ scrollTop: this._scrollableElement.getScrollPosition().scrollTop + delta }); })); </ins> const data = this._lastDocStates?.[item.getKey()]; if (data) { transaction(tx => {

Discussion:
Multi diff editor issue while expanding the hidden lines VS Code Version: 1.86 insider OS Version: Windows 11 //cc Steps to Reproduce: the multi diff editor on the hidden lines at the bottom ( the blue line) now it will expand the 10 lines now scrolling top doesn't show me the '5 hidden lines' text until I scroll down and then scroll up again
Change:
} } <del> // Correlated file watching is taken as is </del> <ins> // Correlated file watching is taken as is (for now we only opt into correlating with proposed new file system watcher API with excludes) const correlate = Array.isArray(unvalidatedOpts?.excludes) && unvalidatedOpts.excludes.length > 0; </ins> if (correlate) { this._logService.trace(`MainThreadFileSystemEventService#$watch(): request to start watching correlated (extension: ${extensionId}, path: ${uri.toString(true)}, recursive: ${opts.recursive}, session: ${session})`);

Discussion:
Testing Extension Event Log
I actually wasn't sure if the glob pattern was supposed to be excluding this file in the default watcher excludes but even specifying the glob directly like this doesn't exclude:
the default exclude is actually so that we can still detect changes to top level folder. So your first observation is actually expected. It would only ignore for deeper folder structures within .
Your second case is a nice find though: you provide an explicit exclude list and the events that you see are actually from the default workspace file watcher. should address that.
Change:
import { Snippet, SnippetSource } from 'vs/workbench/contrib/snippets/browser/snippetsFile'; import { isPatternInWord } from 'vs/base/common/filters'; import { StopWatch } from 'vs/base/common/stopwatch'; <ins> import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry'; </ins> export class SnippetCompletion implements CompletionItem {

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --Version: 1.49.0-insider Commit: Date: 2020-08-17T17:11:16.078Z (1 day ago) Electron: 9.2.0 Chrome: 83.0.4103.122 12.14.1 V8: 8.3.110.13-electron.0 OS: Darwin x64 19.6.0 Steps to Reproduce: Add the following python snippet: or PowerShell snippet: : which will cause auto-closing pair... (at this point you have where is the cursor) add a or and hit TAB or ENTER on the intellisense item NOTE THE TRAILING . Snippets and auto-closing pairs should play nice together so that the whole experience generates valid code. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
Here's a javascript example for array destructuring: which gets you: when you type:
better example! A javascript example for : which gets you: when you type:
for verification, this: should get you: on insert mode replace (default is SHIFT + ENTER)
I'll note that it works fine in non-json files, but is reversed in a json file (as are the insert/replace hints in the suggestion box). W10
that seems like a separate issue not related to this fix. Can you open a new issue?
Yes, I'll open another issue.
Change:
capabilities |= EditorInputCapabilities.Singleton; } <ins> // Indicate we show more than one editor capabilities |= EditorInputCapabilities.MultipleEditors; </ins> return capabilities; }

Discussion:
Just came across this code that conditionally leaves zen mode when side by side or diff editors are opened: We probably want something similar when a merge editor is opened.
enable centered editor layout open a merge editor verify centered editor layout exits
Verified
Change:
@ITelemetryService private telemetryService: ITelemetryService, @IStorageService storageService: IStorageService, @IConfigurationService configurationService: IConfigurationService, <del> @IProductService productService: IProductService </del> <ins> @IProductService productService: IProductService, @IEnvironmentService environmentService: IEnvironmentService </ins> ) { super( telemetryService.machineId, configurationService, productService, <ins> environmentService, </ins> new WorkbenchAssignmentServiceTelemetry(telemetryService, productService), new MementoKeyValueStorage(new Memento('experiment.service.memento', storageService)) );

Discussion:
We have learnt (the hard way) that when running extension/integration tests that EXP is enabled. This means some build (and user) machines might behave different to how they run locally. Also, it seems wasteful to contact the service when running tests
Change:
if (!silent) { this._onCancel.fire(void 0); } <ins> if (this.provideSignatureHelpRequest) { this.provideSignatureHelpRequest.cancel(); this.provideSignatureHelpRequest = undefined; } </ins> } trigger(delay = ParameterHintsModel.DELAY): void {

Discussion:
From Steps to Reproduce: top of , add: code dev so that the modified ts extension is running a ts file in the dev instance of code: signature help in but then move the cursor up or down a line Bug Even though we likely no longer need the signature help result, it appears that we never actually cancel SignatureHelpProvider request
Cases where we may want to cancel the request: Selection change Document contents change Active document changes Suggestions requested
Should be fixed for the following cases: Document changes Request cancelled by user Mouse selection Re-trigger hints
Change:
keybinding: { weight: KeybindingWeight.WorkbenchContrib + 100, primary: KeyCode.Escape, <ins> when: ScopedChatSynthesisInProgress </ins> }, menu: [ {

Discussion:
Type: <bBug</bI ccould not close inline chats or quick picks anymore. Looks like captured all esc shortcuts. I had used voice input during the session. VS Code version: Code - Insiders 1.90.0-insider (, 2024-05-17T17:53:51.447Z) OS version: Darwin x64 23.4.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (64)</summaryExtensionVersion ------ html-snippets0.2.1 tsl-problem-matcher0.6.2 emojisense0.10.0 github-markdown-preview0.3.0 markdown-checkbox0.4.0 markdown-emoji0.3.0 markdown-footnotes0.1.1 markdown-mermaid1.23.0 markdown-preview-github-styles2.0.4 markdown-yaml-preamble0.1.0 mermaid-markdown-syntax-highlighting1.6.3 vscode-tailwindcss0.11.68 esbuild-problem-matchers0.0.3 vscode-eslint2.4.4 kusto0.4.4 EditorConfig0.16.4 prettier-vscode10.4.0 auto-close-tag0.5.15 auto-rename-tag0.1.10 codespaces1.16.22 copilot1.194.885 copilot-chat0.16. copilot-nes0.0.1 remotehub0.63. vscode-github-actions0.26.2 vscode-pull-request-github0.89. headwind1.7.0 debug-tracker-vscode0.0.15 peripheral-viewer1.4.6 vscode-azureresourcegroups0.9.0 vscode-docker1.29.1 vscode-dotnet-runtime2.0.5 debugpy2024.7. isort2023.13. python2024.7. vscode-pylance2024.5.101 jupyter2024.4. jupyter-keymap1.1.2 jupyter-renderers1.0.17 remote-containers0.366.0 remote-ssh0.112. remote-ssh-edit0.86.0 remote-wsl0.88.2 anycode0.0.73 azure-repos0.39.

cpptools1.20.5 live-server0.4.13 remote-repositories0.40.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-markdown-notebook0.0.26 vscode-selfhost-test-provider0.3.25 vscode-speech0.9. vscode-typescript-next5.5. prisma5.14.0 vscode-xml0.26.1 vscode-yaml1.14.0 kuskus-kusto-syntax-highlighting2.0.2 svg-preview2.8.3 pdf1.2.2 vscode-mdx1.8.5 volar2.0.10 gitblame10.11.0 markdown-all-in-one3.6.2 (3 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
are you certain its that command? It is only enabled when a voice chat session is active. When you set the log level to trace, please check what is printed when you trigger in the chat widget:
Happened again on a different machines. The main step of the STR seems to be using voice input (I mostly demo the hold down key usage) Both times I did troubleshooting and it pointed to the stop listening command.
I need some steps to reproduce that you lead you to the issue and the precise location in the UI where this happens (globally anywhere or when you are in a chat input field?)
Change:
if (this.userDataProfilesMainService.isEnabled()) { const workspace = configuration.workspace ?? toWorkspaceIdentifier(configuration.backupPath, false); <del> const profilePromise = this.resolveProfileForBrowserWindow(options, workspace); </del> <ins> const profilePromise = this.resolveProfileForBrowserWindow(options, workspace, defaultProfile); </ins> const profile = profilePromise instanceof Promise ? await profilePromise : profilePromise; configuration.profiles.profile = profile;

Discussion:
I know I suggested but after trying it out I am convinced that was a wrong suggestion. I think we should just revert it, and whenever we open a new folder it should be using the CURRENT profile. I know and feel the same.
Lets discuss this!
Actually I liked this behaviour too. Reverted this after our discussion. Bringing this back again :)
Awesome - thanks!
Is it possible to associate a workspace (or folder) with a profile? E.g. can I set that if I open a workspace (or folder) "A", current profile will be switched to "Default" and if I open a workspace "B", current profile will be switched to "Work"?
Well, it seems to be already working:
Change:
}); } <del> return new RegExp(str, (lexer.ignoreCase ? 'i' : '')); </del> <ins> let flags = (lexer.ignoreCase ? 'i' : '') + (lexer.unicode ? 'u' : ''); return new RegExp(str, flags); </ins> } /**

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. --Feature request for the Monaco Editor. Create an optional flag for Monaco Monarch language definitions to indicate the usage of unicode-aware regular expressions. An example of one such regular expression is , matching the '' character.
What exactly does not work? Since you can pass in regular expressions directly e.g.
Hi, What's currently not working is the unicode-aware regular expressions supported by ES2015. Even though you're able to write a RegExp including unicode-aware characters (in the format ), and even set the unicode flag for that RegExp, they don't work in Monaco Monarch at the moment. Below is the monaco-language file for ABAP, edited to support the character in identifiers. ! This is how it shows up in the editor: ! That happens precisely because the unicode flag is stripped away by compileRegExp, causing the match to fail for that character: If we change that line to, say it works as expected: ! The proposed solution is a way for the developer to tell Monaco Monarch that, instead of stripping away the unicode flag from all the regular expressions, it should instead add it to all the regular expressions if a flag is set in the language definition, just like it's the current behavior for the option. Another option I've considered was to instead use the unicode flag if, and only if, it is set in the regular expression itself, but from what I could gather, that would force us to compile the RegExp an extra time just for testing the flag, or to parse the RegExp manually. Let me know if you need more information.
:+1: Thank you, this makes good sense!
Change:
"list.activeSelectionIconForeground": "#FFF", "terminal.inactiveSelectionBackground": "#3A3D41", "widget.border": "#303031", <ins> "actionBar.toggledBackground": "#383a49" </ins> }, "tokenColors": [ {

Discussion:
Testing <img width="273" alt="image" src=""Should use a toggle state instead, or a new icon. You can see it looks the same as the other disabled action
I agree, but then this also applies to the "toggle whitespace" button. I think we need some pressed state for toolbar buttons. What are your thoughts ?
I'd prefer to have an icon per state. That's how we have done it in other toolbars (like output scroll lock).
<img width="584" alt="image" src=""Mockup with a toggled state. Having an icon per state makes sense for the lock icon, because the reverse icon metaphors make intuitive sense. This is not the case for the whitespace and fold icon here though. cc
We do use toggles elsewhere. One easy example: <img width="472" alt="CleanShot 2023-07-07 at 09 13 11 src=""But I think it depends what you're trying to do. Many boolean settings make sense as a sort of enabled/disabled toggle, while others are more specific metaphors (lock/unlock as Hylke mentioned above).
I'm still in favor of a toggle border as we already use this concept in the find widget and it is a universally understood concept, but has to agree. Alternatively, we can explore other icons. Or we leave it as is.
No, I don't need to agree (but also not to like it). If you wanna explore or something similar go ahead but we should be aware that this is also open to extensions, so we need to deal with every (contributed) button looking like this in the future
I think this approach looks good to me It is more aligned with the vs code current design and should be replaced the current find widget toggle ui
Verification steps: Notice that in the diff editor buttons have a background now to indicate their toggled state: !
Change:
|| code === CharCode.Period || code === CharCode.Underline || code === CharCode.Tilde <del> || (allowSlash && code === CharCode.Slash) </del> <ins> || (isPath && code === CharCode.Slash) || (isAuthority && code === CharCode.OpenSquareBracket) || (isAuthority && code === CharCode.CloseSquareBracket) || (isAuthority && code === CharCode.Colon) </ins> ) { // check if we are delaying native encode if (nativeEncodePos !== -1) {

Discussion:
wrongly encode IPv6 literals ( This is an issue with but if I understand correctly issues should be reported here ) can parse IPv6 literal address fine (examples are using node REPL) but will encode the : This string representation of the URI cannot be used for example by a web browser. This encoding seems to happen here <!-- 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?: not applicable <!-- 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: main ( ) OS Version: linux Steps to Reproduce: actual: expected:
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.68.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
Looks similar to:
Change:
if (!this._ghostTextMarker) { return; } <ins> const onFirstLine = xterm.buffer.active.cursorY === 0; </ins> this._ghostText = xterm.registerDecoration({ marker: this._ghostTextMarker, layer: 'top', <del> x: xterm.buffer.active.cursorX + 1 ?? 0, </del> <ins> x: onFirstLine ? xterm.buffer.active.cursorX + 4 : xterm.buffer.active.cursorX + 1 ?? 0, </ins> }); this._ghostText?.onRender((e: HTMLElement) => { e.classList.add('terminal-voice-progress-text'); e.textContent = text; <del> e.style.width = 'fit-content'; </del> <ins> e.style.width = (xterm.cols - xterm.buffer.active.cursorX) / xterm.cols * 100 + '%'; </ins> }); } }

Discussion:
Sighted users see preview text as a voice recording occurs and they see the resultant output, which could be drastically different from what they might expect. To make this clear for SR users, after the recording has stopped, we should alert with the content that was inserted in at least the terminal. Unclear if this would also be desirable to do in the chat input boxes
Do you move over to using braille when using the speech functionality Otherwise, doesn't the mic pick up on what the screen reader is saying?

It seems that the mic icon requires at least one line above the prompt to show: ! It does not appear for me in the above case.
Thanks for the issue. Should be an easy fix and in this case the mic will have to go on the cursor line
Change:
return this._resource; } <ins> public get resourceColumn(): vscode.ViewColumn { return this._resourceColumn; } </ins> public get state() { return { resource: this.resource.toString(), locked: this._locked, line: this.line, <ins> resourceColumn: this.resourceColumn, </ins> imageInfo: this.imageInfo }; }

Discussion:
Issue Type: <bBug</b! When using the Markdown preview, the "Show Source" action should be smart enough to know that the source is open and go to that tab. Same applies to the preview tab, if there is already a preview tab open switch focus there. Otherwise you're in this endless loop of creating duplicate tabs. VS Code version: Code - Insiders 1.35.0-insider (, 2019-05-20T05:15:57.974Z) OS version: Darwin x64 18.2.0 <details<summarySystem Info</summary </details<details<summaryExtensions (30)</summaryExtensionVersion ------ vscode-browser-preview0.5.4 vscode-opennewinstance0.0.6 bracket-pair-colorizer1.0.61 vscode-svgviewer2.0.0 vscode-eslint1.9.0 gitlens9.7.4 vsc-material-theme2.8.2 prettier-vscode1.9.0 azure-virtual-machine-explorer0.0.2 vscode-pull-request-github-insiders1.137.0 vscode-colorize0.8.10 theme-monokai-pro-vscode1.1.13 vscode-azureappservice0.14.0 python2019.4. remote-containers0.53.0 remote-ssh0.37.0 remote-ssh-edit0.37.0 remote-ssh-explorer0.37.0 remote-wsl0.36.0 azure-account0.8.4 azurecli0.4.5 vscode-typescript-tslint-plugin1.0.0 debugger-for-chrome4.11.3 vetur0.21.0 vscode-docker0.6.2 vscode-yaml0.4.0 code-settings-sync3.2.9 ayu0.18.0 WebTemplateStudio-dev-nightly0.0. markdown-all-in-one2.3.1 (17 theme extensions excluded) </details<!-- generated by issue reporter --
I'd like to give this a try
Ok, I could use some help on this issue. I traced the click call to the function , but am not sure if I should be making any changes here since it will very likely affect other functionalities as well.

I also noticed that if I have the file already open in the same split window pane, it will open that instead of creating a new split pane, but it is even when it opens a new pane with a new tab. So I am confused how calling the same function with the same parameter exhibits different behaviors (opening a new pane with a new tab vs opening an already open tab in the same pane). ! Some pointers around this would be very helpful, thanks
sorry for tagging you, not sure if you got a chance to see my previous comment. Can you please help out?
The api you linked to is a good starting point but that is part of core VS Code. You want the caller of that api, which in the case is the markdown extension. How I think this feature should work: the markdown extension, we maintain a . These should track which column created the preview. This is likely already passed in with , we just don't store the resourceColumn anywhere as far as I remember. the is invoked, use the preview's column information to decide which column to show the preview in
Change:
import { Event } from 'vs/base/common/event'; import { IOpenerService } from 'vs/platform/opener/common/opener'; <del> import { $ } from 'vs/base/browser/dom'; </del> <ins> import { $, EventHelper, EventLike } from 'vs/base/browser/dom'; </ins> import { domEvent } from 'vs/base/browser/event'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { KeyCode } from 'vs/base/common/keyCodes';

Discussion:
Steps to Reproduce: a breakpoint into debug viewlet on link to create mock debug config = dispose of the workbench is triggered
Change:
this.parentDomElement.appendChild(this.fontStyleElement); this.parentDomElement.appendChild(this.terminalContainer); <ins> this.attachEventListeners(); </ins> this.configurationHelper = new TerminalConfigHelper(platform.platform, this.configurationService, parent); return this.terminalService.createNew(); } <ins> private attachEventListeners(): void { this.toDispose.push(DOM.addDisposableListener(this.parentDomElement, 'mousedown', (event: MouseEvent) => { if (this.terminalInstances.length === 0) { return; } if (event.which === 2 && platform.isLinux) { // Drop selection and focus terminal on Linux to enable middle button paste when click // occurs on the selection itself. this.terminalInstances[this.terminalService.getActiveTerminalIndex()].focus(true); } else if (event.which === 3) { // Trigger the context menu on right click let anchor: HTMLElement | { x: number, y: number } = this.parentDomElement; if (event instanceof MouseEvent) { const standardEvent = new StandardMouseEvent(event); anchor = { x: standardEvent.posx, y: standardEvent.posy }; } this.contextMenuService.showContextMenu({ getAnchor: () => anchor, getActions: () => TPromise.as(this.getContextMenuActions()), getActionsContext: () => this.parentDomElement, getKeyBinding: (action) => { const opts = this.keybindingService.lookupKeybindings(action.id); if (opts.length > 0) { return opts[0]; // only take the first one } return null; } }); } event.stopImmediatePropagation(); })); this.toDispose.push(DOM.addDisposableListener(this.parentDomElement, 'mouseup', (event) => { if (this.terminalInstances.length === 0) { return; } if (event.which !== 3) { this.terminalInstances[this.terminalService.getActiveTerminalIndex()].focus(); } })); this.toDispose.push(DOM.addDisposableListener(this.parentDomElement, 'keyup', (event: KeyboardEvent) => { if (event.keyCode === 27) { // Keep terminal open on escape event.stopPropagation(); } })); } </ins> public createNewTerminalInstance(terminalProcess: ITerminalProcess, terminalFocusContextKey: IKeybindingContextKey<boolean>): TPromise<void> { return this.createTerminal(terminalProcess, terminalFocusContextKey).then(() => { this.updateConfig();

Discussion:
Currently events are handled in each terminal instance, this means that event handlers go off for each terminal instances for an event on the terminal panel.
Change:
if (insertedNode) { nodes.push(insertedNode); <ins> } else { silent = false; </ins> } } } <del> this.set(nodes); </del> <ins> this._set(nodes, silent); </ins> } private createNodeSet(): Set<ITreeNode<T, any>> {

Discussion:
a TypeScript file open (with some code in it) the outline to jump to the beginning of a method something somewhere the cursor jump to the beginning of the previously jumped-to function as soon as you stop pressing keys for .5 seconds Yes (both in insiders & stable) Version: 1.34.0-insider (user setup) Commit: Date: 2019-04-26T13:39:29.623Z Electron: 3.1.8 Chrome: 66.0.3359.181 10.2.0 V8: 6.6.346.32 OS: Windows_NT x64 10.0.
It seems that the tree send a selection change event after updating children (which happens because markers changed). I will look into a workaround, e.g being but it seems like a tree issue <img width="777" alt="Screenshot 2019-04-29 at 10 33 24" src="https://user-"