jiebi/CodeConvo huggingface dataset:
Change:
width: 9px; left: -6px; z-index: 10; <del> color: black; </del> <ins> color: var(--vscode-editor-foreground); </ins> text-align: center; display: flex; flex-direction: row;

Discussion:
I was exploring ways to improve the PR experience in VS Code and one of the ideas involved updating the glyph area for comments. Currently we show a gray bar and a unicode and that don't look very pretty. ! A couple of things I explored: Moving glyph area to the left of line numbers. This helps create separation between between the scm indicators and a clear area for adding comments. Adding button for adding and view comments. This follows a similar pattern on GitHub for reviewing changes. Hiding diff chunk areas. This reduces the visual noise and I think most people will be commenting on changed lines in the PR as opposed to lines that are not related Adding color to the and changes to look visually pleasing ! Unsure who should I assign to so assigning to and for now
Some additional feedback from the team: We might still need the indicator for comment areas, particularly when viewing files with changes in review mode where the diffs are not present ! We could also surface the "add comment" button on line hover to increase discoverability
I agree that we will likely still need to show the range, but let's improve the leave-a-comment and there's-a-comment decorations.
Here's what I'm thinking: ! It uses the comment codicon for lines with a comment thread. Keeps the existing + for add Makes them both look a little more clickable but making them more square and giving them rounded corners. and what do you think? I didn't add any color for now and I kept everything to the right of the line numbers still.
this is looking great, love that we can have codicon support in the comments! I know you mentioned you hadn't any color, is that something that you'd be open for us to add? I did a quick mockup that shows an alternate styling: <img width="314" alt="CleanShot 2022-08-08 at 08 57 41 src="https://user-"
I didn't add color because I thought the blue was a bit too strong, but I really like the color in this mock up. I'll add it and merge the change! I also see that you're using the codicon +. I'll switch to that too.
Also updated the multiline add: !
Change:
import { EventType, Gesture, GestureEvent } from 'vs/base/browser/touch'; import { Disposable } from 'vs/base/common/lifecycle'; import { IPointerHandlerHelper, MouseHandler, createMouseMoveEventMerger } from 'vs/editor/browser/controller/mouseHandler'; <del> import { IMouseTarget } from 'vs/editor/browser/editorBrowser'; </del> <ins> import { IMouseTarget, MouseTargetType } from 'vs/editor/browser/editorBrowser'; </ins> import { EditorMouseEvent, EditorPointerEventFactory } from 'vs/editor/browser/editorDom'; import { ViewController } from 'vs/editor/browser/view/viewController'; import { ViewContext } from 'vs/editor/common/viewModel/viewContext';

Discussion:
have an inlay hint with command double click the hint to run the command the current word is selected too
I believe this needs some changes in the editor. Preventing default on the mouse event doesn't seem to fix it.
What should happen when the user clicks on an inlay hint for a single time?
Nothing, unless it's a cmd/ctrl-click on an active label part link
Change:
) { super(`extensions.installActions`, '', [ [ <del> instantiationService.createInstance(InstallAndSyncAction, { installPreReleaseVersion: extensionsWorkbenchService.preferPreReleases }), instantiationService.createInstance(InstallAndSyncAction, { installPreReleaseVersion: !extensionsWorkbenchService.preferPreReleases }), ], [ </del> instantiationService.createInstance(InstallAction, { installPreReleaseVersion: extensionsWorkbenchService.preferPreReleases }), instantiationService.createInstance(InstallAction, { installPreReleaseVersion: !extensionsWorkbenchService.preferPreReleases }), ] ]); } <del> protected override getLabel(action: AbstractInstallAction): string { </del> <ins> protected override getLabel(action: InstallAction): string { </ins> return action.getLabel(true); }

Discussion:
Look at telemetry and if not a lot of users are using the Install and Do not Sync extension action remove the action to simplify the Extension Install flow. is the action name. fyi
Ok was run on 59K distinct machines. For comparison extensionGallery:install was executed on 10.4M machines. So Do not Sync is used in 0.5% of cases. I think it is fine if we remove it - we keep it somewhere but not so prominent. what do you think?
Any suggestions?
We already have the "Sync Extension" check in the Extension context menu when it is installed - this is great. ! And we already have the "Sync Extension" check in the same context menu when it is not installed. Just currently if I click this, there is no effect. So ideally the experience would be that I can uncheck this before installing the extension. And thus we need no new actions. !
Lets try this in insiders already and see if we get any hit back.
Awesome - thanks!
Change:
"editorGroup.border": "#ffffff17", "editorGroupHeader.tabsBackground": "#181818", "editorGroupHeader.tabsBorder": "#ffffff15", <del> "editorGutter.addedBackground": "#2ea04366", "editorGutter.deletedBackground": "#f8514966", "editorGutter.modifiedBackground": "#bb800966", "editorIndentGuide.activeBackground": "#c9d1d93d", </del> <ins> "editorGutter.addedBackground": "#2ea043", "editorGutter.deletedBackground": "#f85149", "editorGutter.modifiedBackground": "#2488d8", </ins> "editorInlayHint.background": "#8b949e33", "editorInlayHint.foreground": "#8b949e", "editorInlayHint.typeBackground": "#8b949e33",

Discussion:
Current Dark+ v2: ! I also notice we change blue to yellow? Dark+: ! I'm used to it being quite vibrant (Sapphire): !
Change:
const ds = ensureNoDisposablesAreLeakedInTestSuite(); let single: TestExtHostTestItemCollection; <ins> let resolveCalls: (string | undefined)[] = []; </ins> setup(() => { <ins> resolveCalls = []; </ins> single = ds.add(new TestExtHostTestItemCollection('ctrlId', 'root', { getDocument: () => undefined, } as Partial<ExtHostDocumentsAndEditors> as ExtHostDocumentsAndEditors)); single.resolveHandler = item => { <ins> resolveCalls.push(item?.id); </ins> if (item === undefined) { const a = new TestItemImpl('ctrlId', 'id-a', 'a', URI.file('/')); a.canResolveChildren = true;

Discussion:
My extension's has a that replaces all root items whenever it is called. It calls the same function that creates the items upon extension activation. After the is run, I've verified that the correct root items have been created with set to . However, when the user tries to expand the item, the is not called on that item and no children are created. This simple extension demonstrates the bug: Steps to Reproduce: the extension above. It should immediately activate after the window refresh. the text explorer and observe the root item. Expand it to reveal two children. the Output channel to see that the resolve handler was called. the refresh icon and verify that "Refreshing" was written to the Output channel. to expand the new root. Verify that the resolve handler was never called. VS Code Version: 1.87.2
Thanks for triaging this Do you anticipate this being resolved before the next release? If not, do you have a recommended workaround I should try to implement in my extension?
A fix for this would be highly appreciated. This bug is a major annoyance for my daily work I started creating a new issue for , but googled first and found this one instead I even "fixed" the issue by adding the following line into the refreshHandler Like so: testController.refreshHandler = () ={ replaceRootTestItems(testController); ((item) =testController.resolveHandler(item)); };
Thanks for the tip I'll give that a try as a workaround.
<!-- 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!
/verified
Thanks!
Thanks for fixing this!
Change:
return { actionName: (matchResult: ContextualMatchResult) => matchResult.outputMatch ? `Git push ${matchResult.outputMatch[1]}` : '', commandLineMatcher: GitPushCommandLineRegex, <del> outputMatcher: { lineMatcher: GitPushOutputRegex, anchor: 'bottom' }, </del> <ins> outputMatcher: { lineMatcher: GitPushOutputRegex, anchor: 'bottom', offset: 0, length: 5 }, </ins> exitStatus: false, getActions: (matchResult: ContextualMatchResult, command: ITerminalCommand) => { const branch = matchResult?.outputMatch?.[1];

Discussion:
Open terminal and run command After it finishes, there is a freeze. Some times I see window is not responding dialog Now type command Freezes again Here is the profile that is captured while running command Here is the profile that is captured while running command I have set to
getOutputMatch can be too expensive: ! Is some quick fix not working on just a small line range?
The second one: !
Oh none of the quick fixes use offset or length currently. We should force that, otherwise the regex will run on every line.
Change:
import { IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { isString } from 'vs/base/common/types'; <ins> import { InputBox, MessageType } from 'vs/base/browser/ui/inputbox/inputBox'; </ins> const $ = DOM.$;

Discussion:
Follow up from I have a completion item provider for context keys. For the keybindings UI this isn't working yet and what's needed is the simple editor widget as the input when authoring when-clauses a similar completion item provider (using internal API) that uses the same data source ()
Started using (Code Editor) for when input and I am seeing following issues with the code editor widget is showing far away from the editor. <img width="858" alt="image" src="https://user-"listen on key and accept the when text. This is causing problem when I am accepting an option from suggest list using Enter. Is there a way to prevent this to happen? / Your expertise would be very helpful here. You can find changes here -
Pretty sure that you need to use the keybindings service instead, e.g don't listen to keydown/up event directly ops... that seems very wrong, both widgets are normal content/overlay widgets
Right. I am using keybindings to accept/reject when expression changes. And it fixed the second issue. Thanks. Issue with suggest widget is only pending.
Investigated the issue with overflow content widget misplacement and here is what I found: This seems to be a bug with editor overflowing content widget value set to . According to the docs, when position value is set to fixed then the position of the element will be relative to its containing block, which is In keybindings editor, the table widget (extending list widget) has the ancestor rows element with and css property set. Hence overflowing content widgets are drawn relative to the table rows element. This can be confirmed by disabling the on the table widget that does not set above css properties. This means, embedding a code editor widget inside any node that has these css properties set will break the position of the overflowing content widgets CC / for editor related. CC for table/list related. Can you please let me know what is the right way to proceed here. Does it makes sense to disable for keybindings table? Or this shall has to be fixed in editor?
It seems the trick is to use option in the code editor. But it seems to work only for content widgets but not for overlay widgets - like suggest element details. Using the same for overlay widgets fixes it.

For now disabled table transformations and created a separate PR to fix it in the editor -
Verify that while editing when column in keyboard shortcuts editor shows the list of context key suggestions.
I see this is implemented but it's also mostly broken because it doesn't work with prefixes
Change:
} private ensureFileSchema(schema: string): string[] { <del> return schema !== Schemas.file ? [schema, Schemas.file] : [schema]; </del> <ins> // Don't allow untitled schema through. return schema === Schemas.untitled ? [Schemas.file] : (schema !== Schemas.file ? [schema, Schemas.file] : [schema]); </ins> } async pickFileFolderAndOpen(options: IPickAndOpenOptions): Promise<any> {

Discussion:
vscode with no folder (purple status bar) untitled file, save as file how the simple dialog offers me the root path. This is wrong imho, you should offer the home directory, or at least something wich I choose the last time
Could we keep the Untitled URI scheme here? All file scheme URIs are absolute. Which means that the remote file picker would have to use a heuristic like checking for "Untitled-" in the path to tell that the user home should be used.
Feel free to change. is the expert on the untitled URIs...
the URI only seems to be used in combination of the dialog itself (both native and custom - ), so I think we can preserve the if you deal with the untitled case in both worlds.
Change:
// Running out of sources if (Object.keys(product).length === 0) { Object.assign(product, { <del> version: '1.91.0-dev', </del> <ins> version: '1.94.0-dev', </ins> nameShort: 'Code - OSS Dev', nameLong: 'Code - OSS Dev', applicationName: 'code-oss',

Discussion:
We'd like to have a safety net if we ever break Insiders users once more to the point of them not being able to update.
Implementation is done. Requires
Change:
collector.addRule(`.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a > code { color: ${link}; }`); } <ins> const activeLink = theme.getColor(textLinkActiveForeground); if (activeLink) { collector.addRule(`.settings-editor > .settings-body > .settings-tree-container .setting-item .setting-item-description-markdown a:hover, .settings-editor > .settings-body > .settings-tree-container .setting-item .setting-item-description-markdown a:active { color: ${activeLink}; }`); collector.addRule(`.settings-editor > .settings-body > .settings-tree-container .setting-item .setting-item-description-markdown a:hover > code, .settings-editor > .settings-body > .settings-tree-container .setting-item .setting-item-description-markdown a:active > code { color: ${activeLink}; }`); collector.addRule(`.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:hover, .monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:active { color: ${activeLink}; }`); collector.addRule(`.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:hover > code, .monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:active > code { color: ${activeLink}; }`); } </ins> const headerForegroundColor = theme.getColor(settingsHeaderForeground); if (headerForegroundColor) { collector.addRule(`.settings-editor > .settings-header > .settings-header-controls .settings-tabs-widget .action-label.checked { color: ${headerForegroundColor}; border-bottom-color: ${headerForegroundColor}; }`);

Discussion:
Issue Type: <bBug</b VS Code version: Code 1.28.2 (, 2018-10-17T00:23:51.859Z) OS version: Windows_NT x64 10.0. <!-- generated by issue reporter --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.504 --- <!-- score: 0.472 --- <!-- score: 0.457 --<!-- potentialduplicatescomment --
Change:
@ILayoutService private readonly _layoutService: ILayoutService, @IAccessibilityService private readonly _accessibilityService: IAccessibilityService ) { <del> contextMenuService.onDidShowContextMenu(() => this.hideHover()); </del> <ins> contextMenuService.onDidShowContextMenu(() => this.doHideHover()); </ins> } showHover(options: IHoverOptions, focus?: boolean, skipLastFocusedUpdate?: boolean): IHoverWidget | undefined { if (getHoverOptionsIdentity(this._currentHoverOptions) === getHoverOptionsIdentity(options)) { return undefined; } <ins> if (this._currentHover && this._currentHoverOptions?.sticky) { return undefined; } </ins> this._currentHoverOptions = options; this._lastHoverOptions = options; const trapFocus = options.trapFocus || this._accessibilityService.isScreenReaderOptimized();

Discussion:
Testing !
That's right. Its because we are using hover infrastructure in the bg.
Change:
run(accessor: ServicesAccessor, ...args: any[]): void { const configService = accessor.get(IConfigurationService); const storageService = accessor.get(IStorageService); <del> const value = configService.getValue<string>(ToggleEditorActions.settingsID); if (value === 'hidden') { const storedValue = storageService.get(ToggleEditorActions.settingsID, StorageScope.PROFILE); configService.updateValue(ToggleEditorActions.settingsID, storedValue ?? 'default'); } else { </del> <ins> const location = configService.getValue<string>(ToggleEditorActions.settingsID); if (location === 'hidden') { const showTabs = configService.getValue<string>('workbench.editor.showTabs'); // If tabs are visible, then set the editor actions to be in the title bar if (showTabs !== 'none') { configService.updateValue(ToggleEditorActions.settingsID, 'titleBar'); } // If tabs are not visible, then set the editor actions to the last location the were before being hidden else { const storedValue = storageService.get(ToggleEditorActions.settingsID, StorageScope.PROFILE); configService.updateValue(ToggleEditorActions.settingsID, storedValue ?? 'default'); } storageService.remove(ToggleEditorActions.settingsID, StorageScope.PROFILE); } // Store the current value (titleBar or default) in the storage service for later to restore else { </ins> configService.updateValue(ToggleEditorActions.settingsID, 'hidden'); <del> storageService.store(ToggleEditorActions.settingsID, value, StorageScope.PROFILE, StorageTarget.USER); </del> <ins> storageService.store(ToggleEditorActions.settingsID, location, StorageScope.PROFILE, StorageTarget.USER); </ins> } } });

Discussion:
It is now possible to have editor actions in the custom title bar even when tabs are enabled. However in that case, there is no entry in the context menu of the custom title to remove the editor actions again from the title: !
verification steps: or click title bar context menu =should be able to toggle editor actions
<!-- UNABLETOLOCATECOMMITMESSAGE issue --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased
Change:
this.overriddenScopeList = overriddenScopeList; this.description = this.setting.description.join('n'); <del> if (this.setting.enum && (this.setting.type === 'string' || !this.setting.type)) { </del> <ins> if (this.setting.enum && (!this.setting.type || settingTypeEnumRenderable(this.setting.type))) { </ins> this.valueType = 'enum'; } else if (this.setting.type === 'string') { this.valueType = 'string';

Discussion:
: Check whether it's ok to map to : Add 'null' or "None" item to enum : =- : ?? I don't see this in vscode's core settings Also, . Example:
These are the settings explicitly that I could find with a simple search. Of these, the HTML ones are the only concern. For most of them we should probably just get rid of accepting null, as it doesn't make a ton of sense to have just mean either default or some secondary default. But has very different behavior between and so we'll have to decide on something to do there.
[ ] : fix requires API discussion over adding an additional schema parameter [x] : fixes [x] : fixed [ ] : Probably wont fix? Would require some new components and UI/UX discussion. [x] : fixes
can you add some steps for how to verify?
Here are some settings with compound types - Test that they work as you'd expect. I can't remember which extension has the nullable enum but you can test it with a contribution like
seems to work for the first one, but not second. e.g. here I cannot type "null": ! I can only type numbers (I am on Windows).
For the null|number type, an empty input box will correspond to in the json
Change:
.read() .map_err(|e| wrap(e, "could not read from file storage")), ), <ins> fallback_storage: None, </ins> storage: Box::new(file_storage), } }

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?: Not sure. I run "code tunnel" without opening the UI. <!-- 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.80.0 OS Version: Ubuntu 22.04 LTS Steps to Reproduce: Install VSCode or Code Cli on Ubuntu Desktop 22.04 "code tunnel" on Ubuntu. server license terms and login to and enter the code. tunnel will show: . VSCode tunnel and rerun "code tunnel". It will ask for GitHub authentication again, because it failed to update keyring.
Seems to duplicate the upstream issue on To work around this, you can set the environment variable (e.g. by running and reconnecting). But this seems fairly common, we should automatically use a file keychain if we get this error.
Hi Connor, Thanks for your help! It would be wonderful if the error can be automatically dealt with since many people don't know the environment variable.
yes,
<!-- 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!
Putting in a new line in does the trick for me. (putting the env var in a global file ensures that it will be defined regardless of where it's running or who is running it; note that on some systems this may be a massive security hole)
I now see this in insiders: and then when I restart: looks verified to me.
Change:
} } <ins> if (opts.all === undefined) { opts = { all: noStagedChanges }; } else if (!opts.all && noStagedChanges && !opts.empty) { opts = { ...opts, all: true }; } </ins> // enable signing of commits if configured opts.signCommit = enableCommitSigning;

Discussion:
Issue Type: <bBug</bWhen I drill down into the git menu and choose the option to , I really don't need the same confirmation dialog as when I just hit the top-level check mark in the source control pane. The dialog tells me ; this is an incorrect warning at this stage, since I clearly invoked it by choosing . I certainly don't want to choose the option in response to this warning, since it's a good warning to have when I accidentally hit the checkmark without staging any changes. VS Code version: Code 1.67.0 (, 2022-05-04T12:14:47.100Z) OS version: Darwin x64 19.6.0 Restricted Mode: No <!-- generated by issue reporter --
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!