jiebi/CodeConvo huggingface dataset:
Change:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; import assert = require('assert'); import {formatOptions} from 'vs/code/node/argv'; suite('formatOptions', () => { test('Text should display small columns correctly', () => { assert.equal(formatOptions({'foo': 'bar'}, 80), '  foo bar'); assert.equal( formatOptions({ 'f': 'bar', 'fo': 'ba', 'foo': 'b' }, 80), '  f   barn' + '  fo  ban' + '  foo b'); }); test('Text should wrap', () => { assert.equal( formatOptions({ 'foo': (<any>'bar ').repeat(9) }, 40), '  foo bar bar bar bar bar bar bar barn' + '      bar'); }); test('Text should revert to the condensed view when the terminal is too narrow', () => { assert.equal( formatOptions({ 'foo': (<any>'bar ').repeat(9) }, 30), '  foon' + '      bar bar bar bar bar bar bar bar bar '); }); }); </ins>

Discussion:
cc Standard sized (80 width) terminal: ! This is what is was like before: !
do you have any reason against using a community lib for this if I get the deps approved?
Not at all... I just think that the hard 80 column wrap is an unnecessary remnant of the past, given the resizing capabilities of terminal emulators of today.
yeah, I believe the community libs like yargs size the column dynamically but keep formatting similar to what it was like before.
Change:
} async toggleAppliationScope(extension: ILocalExtension, fromProfileLocation: URI): Promise<ILocalExtension> { <del> if (isApplicationScopedExtension(extension.manifest)) { </del> <ins> if (isApplicationScopedExtension(extension.manifest) || extension.isBuiltin) { </ins> return extension; }

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. --I have multiple profiles in VS Code and I disable everything I don't need in each of them, including built-in extensions that I will never use with a particular profile. After the successful installation of the latest version I wanted to try the new option; while it works for user-installed extensions, it fails for built-in extensions, read more below. 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: OS Version: , 22H2 (.2070) Steps to Reproduce: the extensions view built-in extensions only the cog icon on any (enabled) extension on error will occur (see attached screenshot) <div align="center"<img src="" alt="Error in VS Code"</div<brNote: all extensions are present at the provided folder shown in the error message.
Same for me but on MacOS Ventura 13.5 (22G74)
Can you see if the extension is maybe uninstalled when you follow your steps? That could hint to
/duplicate
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for . See also our . Happy Coding!
Unfortunately the latest patch release: and the mentioned didn't fix it, here's the error screenshot again, in the latest version. Also, I've opened the folder itself where the extension is located, while VS Code complains it doesn't exist. <div align="center"<img src="" alt="Error in VS Code"</div
This action should not be shown on builtin extensions because they are available for all profiles by default.
Change:
const that = this; return registerAction2(class UpdateCurrentProfileShortName extends Action2 { constructor() { <ins> const shortName = that.userDataProfileService.getShortName(that.userDataProfileService.currentProfile); const themeIcon = ThemeIcon.fromString(shortName); </ins> super({ id: `workbench.profiles.actions.updateCurrentProfileShortName`, title: { <del> value: localize('change short name profile', "Change Short Name ({0})...", that.userDataProfileService.getShortName(that.userDataProfileService.currentProfile)), original: `Change Short Name (${that.userDataProfileService.currentProfile.shortName})...` </del> <ins> value: localize('change short name profile', "Change Short Name ({0})...", themeIcon?.id ?? shortName), original: `Change Short Name (${themeIcon?.id ?? shortName})...` </ins> }, menu: [ {

Discussion:
Testing ! since macOS uses a native dialog... maybe just do on macOS?
It seems menus cannot render codicons, so falling back to use codicon id in this case.
Change:
}; } <ins> dispose(): void { this._onDidChange.dispose(); this._dispoables.dispose(); this._entriesDisposables.dispose(); } </ins> private _recomputeState(): void { this._entriesDisposables.clear(); this._activeEntry = undefined;

Discussion:
Testing Setting Open a github issue notebook You get: <img width="283" alt="image" src="https://user-"
Change:
keys.forEach(key => this.settingsTreeModel.updateElementsByName(key)); } <del> // Attempt to render the tree once rather than // once for each key to avoid redundant calls to this.refreshTree() this.renderTree(); </del> <ins> keys.forEach(key => this.renderTree(key)); </ins> } else { this.renderTree(); }

Discussion:
Regression from I haven't identified when the issue started happening again. Repro steps: to the Settings editor down on a checkbox or edit an inputbox on an unmodified setting, and wait for the setting to become modified, or click another nearby setting. :bug: The Settings editor settings tree jumps.
I noticed the following: Not rendering the Settings indicator labels does not fix the issue After a setting value changes, is called. Then, when is called during , the setting tree elements are all smushed together. That behaviour is even more dramatic when a setting has a multi-line description. calls , which sets the top of the DOM node to an incorrect value. It looks like the value that is used is an estimate. I believe this estimation process is what causes the settings tree elements to shift upwards and smush together.
Note, the jittering is on the right side, not the tree on the left. Regardless, this looks good to me. I could only repro in Stable on checkboxes, other types of settings didn't show the "jump".
Change:
"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "7.0.1", <del> "xterm": "4.19.0-beta.52", "xterm-addon-search": "0.9.0-beta.37", </del> <ins> "xterm": "4.19.0-beta.53", "xterm-addon-search": "0.9.0-beta.39", </ins> "xterm-addon-serialize": "0.7.0-beta.12", "xterm-addon-unicode11": "0.4.0-beta.3", "xterm-addon-webgl": "0.12.0-beta.36", <del> "xterm-headless": "4.19.0-beta.52", </del> <ins> "xterm-headless": "4.19.0-beta.53", </ins> "yauzl": "^2.9.2", "yazl": "^2.4.3" },

Discussion:
Testing a new terminal a script which logs the same text 2000 times a query, find widget says there are 2000 matches the terminal (e.g. collapse and expand the side bar) :bug: the number of matches is now less even though the same amount of scrollback is visible, moreover deleting and reentering the query doesn't reset the match count !
Maybe this isn't released yet, but I'm still getting the same problem in today's insiders.
Still repros for me :(
Can one of you pls provide a gif? it's working for me with the above example as expected and with others
https://user-
You are both on Windows - I wonder if that has to do with this. Could someone on mac pls verify this?
!
from !
Something weird going on here: ! This is after pasting in " Hi Hi" many times, once the command wraps to the end the terminal freaks out (conpty reprinting), but at some point it breaks and find only finds one result. Finding the next works, but it still says 1 of 1.
More weird behavior !
All results aren't getting included when search results get highlighted !
Problem here seems to be the search addon gets confused because translateToString considers the second character whitespace: But in the search algorirthm it's treated as a null character, of length 0, as opposed to .
Still reproing this. Initially: ! After making the terminal panel taller: !
this is on Windows? That's actually acting as expected because of the way conpty works, it ends up losing lines just above the bottom of the buffer.
Pretty sure you were seeing so closing this again for verification
Change:
} }; }; <ins> function getOutputContainer(event: FocusEvent | MouseEvent) { for (const node of event.composedPath()) { if (node instanceof HTMLElement && node.classList.contains('output')) { return { id: node.id }; } } return; } let lastFocusedOutput: { id: string } | undefined = undefined; const handleOutputFocusOut = (event: FocusEvent) => { const outputFocus = event && getOutputContainer(event); if (!outputFocus) { return; } // Possible we're tabbing through the elements of the same output. // Lets see if focus is set back to the same output. lastFocusedOutput = undefined; setTimeout(() => { if (lastFocusedOutput?.id === outputFocus.id) { return; } postNotebookMessage<webviewMessages.IOutputBlurMessage>('outputBlur', outputFocus); }, 0); }; </ins> // check if an input element is focused within the output element <del> const checkOutputInputFocus = () => { </del> <ins> const checkOutputInputFocus = (e: FocusEvent) => { lastFocusedOutput = getOutputContainer(e); </ins> const activeElement = window.document.activeElement; if (!activeElement) { return;

Discussion:
Repro: 3 cells the middle one the empty space at the bottom of the notebook undo it doesn't work, clicking in between cells does work though
Specifically, undo only works when focused on a cell container. Focus within a cell (code or markdown) editor and in the notebook editor both do not handle the undo.
Change:
* editor by holding shift. */ CanDropIntoEditor = 1 << 7, <ins> /** * Signals that the editor is composed of multiple editors * within. */ MultipleEditors = 1 << 8 </ins> } export type IUntypedEditorInput = IResourceEditorInput | ITextResourceEditorInput | IUntitledTextResourceEditorInput | IResourceDiffEditorInput | IResourceSideBySideEditorInput | IResourceMergeEditorInput;

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:
"@vscode/test-cli": "^0.0.3", "@vscode/test-electron": "^2.3.5", "@vscode/test-web": "^0.0.42", <ins> "@vscode/v8-heap-parser": "^0.1.0", </ins> "@vscode/vscode-perf": "^0.0.14", "ansi-colors": "^3.2.3", "asar": "^3.0.3",

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 we are manually hunting down memory leaks through Dev Tools. For some areas/components (e.g., notebook), this even needs to be done repeatedly. It would be helpful if we can capture the memory snapshots in CI and write some queries against the snapshot to analyze if there is any potential leaks. A typical manual memory leak analysis for notebook Setup Open OSS Open notebook document A Open notebook document B Close both notebook documents Open Dev Tools, take a heap snapshot Search object, there should be none Search object, there should be none Search object, there should not be more than one (the editor group still holds a reference to the last editor) ! cc
The dev tools also show how an object is leaked, we could analyze the dependencies tree and figure out who is the "culprit"
would be a good API for CI use case on desktop to capture from any non-sandboxed process (Main, Utility - Ext Host, Shared Process, Pty Agent) embedding V8 without using external CDP calls. In the case of sandboxed render process, prefer
I find this topic super interesting as well! I have a prototype project that tries to find memory leaks by looking for leaking event listeners. In the screencast, the event listener count increases from 1175 to 1206 which indicates that there might be a memory leak when opening and closing a notebook editor. The project is in the early phases and in the future I'm hoping to display more detailed output for the event listeners as well as making the tests less flaky. (sorry if I'm interrupting the discussion. I'm hoping that perhaps this could be useful for you)
Change:
import iconv = require('iconv-lite'); import * as filetype from 'file-type'; import { assign, groupBy, denodeify, IDisposable, toDisposable, dispose, mkdirp, readBytes, detectUnicodeEncoding, Encoding, onceEvent } from './util'; <del> import { CancellationToken, Uri } from 'vscode'; </del> <ins> import { CancellationToken, Uri, Progress } from 'vscode'; import * as nls from 'vscode-nls'; </ins> import { detectEncoding } from './encoding'; import { Ref, RefType, Branch, Remote, GitErrorCodes, LogOptions, Change, Status } from './api/git'; <ins> const localize = nls.loadMessageBundle(); </ins> const readfile = denodeify<string, string | null, string>(fs.readFile); export interface IGit {

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --When downloading a GIT repository should indicate the percentage of download. <!-- Describe the feature you'd like. --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.484 --<!-- potentialduplicatescomment --
I would like to take this.
Change:
} .monaco-editor .monaco-editor-overlaymessage .message a { <del> font-weight: bold; color: var(--vscode-inputValidation-infoForeground); </del> <ins> color: var(--vscode-textLink-foreground); } .monaco-editor .monaco-editor-overlaymessage .message a:hover { color: var(--vscode-textLink-activeForeground); </ins> } .monaco-editor.hc-black .monaco-editor-overlaymessage .message,

Discussion:
Testing Tiniest of nits, and perhaps this is inherited from all hovers, but I felt like the hover disappeared too quickly. If I was reading particularly slowly or looked away and then back at the message, I might've missed it.
felt the same, I think using the workbench hover infra would help.
Also, it disappears when you still hover on it: !
I think given the new complexity of this hover and the actions we should do a tactical fix here. I suggest to remove the timer that removes the message automatically after 3 seconds: There are still other listeners in place to hide the message, so I think we are good.
makes sense.
trying to verify: "readonly hover" means "hover in readonly files" ?
best to verify would be in repo open a file from folder and try to edit in such a file. You should see a hover with a link.

Testing This would benefit from an underline instead of the bold treatment to match the rendering we use in the workspace banner links (e.g. restricted mode) <img width="490" alt="CleanShot 2023-06-26 at 21 53 54 src=""
I also think its hard to discover, but I think we are not using underline for links in hovers so far?
We also do not show underlines in other places we show markdown in hovers: <img width="485" alt="image" src=""I used bold because the blue background of the hover made the contrast poor with our usual blue link color. We could use another color instead though.
I think the intent of the blue color in the message widget is to draw more attention, i.e. giving the signal of an information message vs. just being a normal tooltip. But maybe we can make the background color of the widget the same as hovers and then user blue color for links. I think that way we can still keep the blue border but it will not collide with the links.
Sample with a mix of hover colors and info colors for border: <img width="764" alt="image" src=""
And in dark theme: ! Changes I did: use hover colors use the same border radius of as in editor hovers allow to tab into the message with keyboard to invoke the link within
Change:
margin-top: 0; } <del> .review-widget .body .comment-body code { border-radius: 3px; padding: 0 0.4em; } </del> .review-widget .body .comment-body span { white-space: pre; }

Discussion:
<img width="589" alt="image" src=""We have padding on codespans in some other places where they have a background color. Here, the padding just adds extra space that looks wrong.
Change:
"when": "config.git.enabled && scmProvider == git && gitState == idle" }, { <ins> "command": "git.commitAllAmend", "when": "config.git.enabled && scmProvider == git && gitState == idle" }, { </ins> "command": "git.undoCommit", "when": "config.git.enabled && scmProvider == git && gitState == idle" },

Discussion:
Like: git commit --amend
Are you referring to the out of the box git behavior or any particular git extension?
I would guess the out of the box behaviour, because it seems to be missing? I can see there is an "undo last commit", but this unstages everything from the last commit, which is not the same thing as amending the current commit. git-gui and atom have a simple checkbox which then amends the current commit instead of creating a new one - would it be possible to have the same in vscode? It's the one thing that stops me using vscode's built in git interface. In other words, you should be able to check and then uncheck the checkbox and be left in the original state. With the "undo last commit", this isn't possible.
Yes, out of the box
command was some time ago by
Should there be something in the menu? Please can you tell me where the option is?
Hmmm.... looks like it has disappeared for some reason, probably was omitted when git integration was ported to new API... will probably know if it was by-design, or just someone missed one command while porting git integration.
I believe we simply missed it... sorry for that.
I'll add it again.
Change:
private _readConfiguration() { const options = this._editor.getOption(EditorOption.stickyScroll); if (options.enabled === false) { this._editor.removeOverlayWidget(this._stickyScrollWidget); this._sessionStore.clear();

Discussion:
Repro: a perf profile a ~100mb TypeScript file (duplicate the contents of a large TS file to make this) perf profile ! It doesn't end up working properly anyway: !
After delete and undo: !
Change:
import { ITelemetryInfo, TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; import { TestTelemetryLoggerService } from 'vs/platform/telemetry/test/common/telemetryLogAppender.test'; import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService'; <del> import { ExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry'; </del> <ins> import { ExtHostTelemetry, ExtHostTelemetryLogger } from 'vs/workbench/api/common/extHostTelemetry'; </ins> import { IEnvironment } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { mock } from 'vs/workbench/test/common/workbenchTestServices'; import type { TelemetrySender } from 'vscode';

Discussion:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?
Change:
updateDefaultOverrideIndicator(element: SettingsTreeSettingElement) { this.defaultOverrideIndicatorElement.style.display = 'none'; <del> const defaultValueSource = element.setting.defaultValueSource; </del> <ins> const defaultValueSource = element.defaultValueSource; </ins> if (defaultValueSource) { this.defaultOverrideIndicatorElement.style.display = 'inline'; if (typeof defaultValueSource !== 'string' && defaultValueSource.id !== element.setting.extensionInfo?.id) {

Discussion:
On Insiders, for in the Settings editor. an HTML language filter to that setting. A default override indicator shows up for the setting that indicates that the default setting value of the extension has been overridden by the HTML Languages extension. remove the language filter from the search query in the search bar. :bug: The default override indicator still remains, even though we are back to the non-language-specific scope.
Change:
"vscode-textmate": "7.0.1", "xterm": "4.19.0-beta.60", "xterm-addon-search": "0.9.0-beta.39", <del> "xterm-addon-serialize": "0.7.0-beta.12", </del> <ins> "xterm-addon-serialize": "0.7.0-beta.13", </ins> "xterm-addon-unicode11": "0.4.0-beta.3", <del> "xterm-addon-webgl": "0.12.0-beta.39", </del> <ins> "xterm-addon-webgl": "0.12.0-beta.41", </ins> "xterm-headless": "4.19.0-beta.60", "yauzl": "^2.9.2", "yazl": "^2.4.3"

Discussion:
Notice the words in the following screenshot: ! Does not reproduce in , from 3 days ago. I'm on Windows, using as my font, default size, no zoom.
Caused by
Change:
// When run with --wait, make sure we keep the paths to wait for if (filesToOpen && openConfig.waitMarkerFileURI) { <del> filesToOpen.filesToWait = { paths: [...filesToOpen.filesToDiff, filesToOpen.filesToMerge[3] /* [3] is the resulting merge file */, ...filesToOpen.filesToOpenOrCreate], waitMarkerFileUri: openConfig.waitMarkerFileURI }; </del> <ins> filesToOpen.filesToWait = { paths: coalesce([...filesToOpen.filesToDiff, filesToOpen.filesToMerge[3] /* [3] is the resulting merge file */, ...filesToOpen.filesToOpenOrCreate]), waitMarkerFileUri: openConfig.waitMarkerFileURI }; </ins> } // These are windows to restore because of hot-exit or from previous session (only performed once on startup!)

Discussion:
Insiders the terminal, run new file called should be open in the editor. that tab. The command no longer returns
Thanks! I thought that it was some configuration issue on my side when GitLens Rebase editor didn't release file and later text editors did the same.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Worked fine for me for both cases: prompt for commit message update as well as GitLens' Rebase editor. Version: 1.70.0-insider (user setup) Commit: Date: 2022-07-21T05:17:27.580Z OS: Windows_NT x64 10.0.
Change:
'description': nls.localize('openDefaultSettings', "Controls if opening settings also opens an editor showing all default settings."), 'default': true }, <ins> 'workbench.settings.openDefaultKeybindings': { 'type': 'boolean', 'description': nls.localize('openDefaultKeybindings', "Controls if opening keybinding settings also opens an editor showing all default keybindings."), 'default': true }, </ins> 'workbench.sideBar.location': { 'type': 'string', 'enum': ['left', 'right'],

Discussion:
New Setting: New Action: Currently, allows users to disable the side-by-side default/user settings view, instead allowing us to view our customized settings file in isolation when using the command. A corresponding option does not yet exist for , although it would be equally useful. Additionally, something like contribution in should be implemented to allow access of the default keybindings if is disabled.
I'd like to take solve this issue. any suggestions? What files will I have to work with for this? This would be my first contribution to VSCode!
References: for Opening raw default for not opening default settings
Hey guys, I got some work around for showing user settings in (GUI) (yet not pushed in my PR), but I had a question. If we set : and open (GUI), it should show only user keybinding settings. But then how should we handle and actions in menu (3 dot at right corner)?
The filtering effects of & seem to be isolated to the UI, so I would expect them to retain their existing functionality. The proposed changes are intended to affect .