jiebi/CodeConvo huggingface dataset:
Change:
const month = day * 30; const year = day * 365; <del> export function fromNow(date: number | Date, appendAgoLabel?: boolean, useFullTimeWords?: boolean): string { </del> <ins> /** * Create a localized of the time between now and the specified date. * @param date The date to generate the difference from. * @param appendAgoLabel Whether to append the " ago" to the end. * @param useFullTimeWords Whether to use full words (eg. seconds) instead of * shortened (eg. secs). * @param disallowNow Whether to disallow the string "now" when the difference * is less than 30 seconds. */ export function fromNow(date: number | Date, appendAgoLabel?: boolean, useFullTimeWords?: boolean, disallowNow?: boolean): string { </ins> if (typeof date !== 'number') { date = date.getTime(); }

Discussion:
Version: 1.44.0-insider (user setup) Commit: Date: 2020-03-31T08:23:56.446Z Electron: 7.1.11 Chrome: 78.0.3904.130 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0. This: ! Reminds me of this in onenote: ! The latter of which drives me crazy as it always lies to me and a restart to re-sync onenote is needed sometimes. Can we get the local time down to the second when you hover the last synced text?
what are the current setup steps for Sync in OSS? I have the setting set to whatever I tested it with a couple months ago but I don't see any Sync commands in the command palette. I can't remember where this is written down.
Could just put the real time in a tooltip, if that helps
I think just the change is needed to get it going in Code OSS. would solve my problem.
Change:
} const commitHash = gitRepo.state.HEAD?.commit; <del> const pathSegment = uri.path.substring(gitRepo.rootUri.path.length); </del> <ins> const fileSegments = (useSelection && uri) ? `${uri.path.substring(gitRepo.rootUri.path.length)}${rangeString(range)}` : ''; </ins> return `${hostPrefix}/${repo.owner}/${repo.repo}/blob/${commitHash <del> }${pathSegment}${rangeString(range)}`; </del> <ins> }${fileSegments}`; </ins> }

Discussion:
Testing Of course, there may have been discussions and reasons for the current behavior, but I was surprised that the share action in the File menu linked to the line number of the currently opened editor. I was expecting a link to the workspace/repository only.
would you expect the same command from the editor context menu to use file+line number?
yes, my expectation would be the context menu has the "context" and therefore does have the file/line associated with it.
Change:
async confirmSave(resources?: URI[]): Promise<ConfirmResult> { if (this.environmentService.isExtensionDevelopment) { <del> return ConfirmResult.DONT_SAVE; // no veto when we are in extension dev mode because we cannot assum we run interactive (e.g. tests) </del> <ins> return ConfirmResult.DONT_SAVE; // no veto when we are in extension dev mode because we cannot assume we run interactive (e.g. tests) </ins> } const resourcesToConfirm = this.getDirty(resources);

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:
import { ExtHostAuthentication } from 'vs/workbench/api/common/extHostAuthentication'; import { localize } from 'vs/nls'; import { INTERNAL_AUTH_PROVIDER_PREFIX } from 'vs/workbench/services/authentication/common/authentication'; <ins> import { toErrorMessage } from 'vs/base/common/errorMessage'; </ins> type LanguageModelData = { readonly extension: ExtensionIdentifier;

Discussion:
Testing I asked a question and noticed this: ! Empty. Further inspection of my logs yielded: My participant is very straightforward: It throws on the: I was expecting to render in the chat
Currently, when there's an error, the stream is just going to be empty. But you can and that will be the actual failed promise with the error. Not sure if that's right or wrong, it looks like you can make the async iterable throw by calling on the , that might help for errors
Yeah, let's make sure to call but also know that this will be a generic error and that only the extension can make this graceful
This the stream and the result error, this is how my sample extension does it It's important to have for-await also inside try-catch
<!-- 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!
Change:
import {IActionItem} from 'vs/base/browser/ui/actionbar/actionbar'; import {IConfigurationService} from 'vs/platform/configuration/common/configuration'; import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation'; <ins> import {IMessageService} from 'vs/platform/message/common/message'; </ins> import {ITelemetryService} from 'vs/platform/telemetry/common/telemetry'; import {ITerminalProcess, ITerminalService, TERMINAL_PANEL_ID} from 'vs/workbench/parts/terminal/electron-browser/terminal'; import {IThemeService} from 'vs/workbench/services/themes/common/themeService';

Discussion:
Steps to Reproduce: terminal as "faketerm" +`
On Linux (ElementaryOS) I get an error dialog with message 'The terminal process terminated with exit code: 1'. Setting as verified, although more details would be helpful.
Indeed that verifies it. Thanks.
Change:
const msg = new ProtocolMessage(ProtocolMessageType.Ack, 0, this._incomingAckId, getEmptyBuffer()); this._socketWriter.write(msg); } <ins> private _sendKeepAlive(): void { const msg = new ProtocolMessage(ProtocolMessageType.KeepAlive, 0, 0, getEmptyBuffer()); this._socketWriter.write(msg); } </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. --Background: Modern reverse proxies like nginx or cloudflare use timeouts for dormant websocket connections. For nginx this defaults to 60s and for Cloudflare to 100s. In case of Cloudflare, this is not configurable for non-enterpise users. Due to the fixes in , the management connection is now typically being idle for extended periods of time. If the web-socket connection is being terminated by the reverse proxy, even if it can be reestablished immediately, a modal dialog is being shown, which disturbs the user immensely. For reference see In order to support Cloudflare it is essential, that we either implement a keep-alive ping (my proposal would by every 45s by default), or alternatively, make it so an immediate reconnect does not cause any negative consequences for the user.
any insights here?
<!-- 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!
Version: 1.71.0-insider Commit: Date: 2022-08-26T23:24:52.456Z Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 /verified I do no longer experience regular reconnects every 100 seconds behind cloudflare with the build above.
Change:
} override run(): Promise<any> { <del> const elementsToRemove = getElementsToOperateOnInfo(this.viewer, this.element, this.configurationService.getValue<ISearchConfigurationProperties>('search')); </del> <ins> const opInfo = getElementsToOperateOnInfo(this.viewer, this.element, this.configurationService.getValue<ISearchConfigurationProperties>('search')); const elementsToRemove = opInfo.elements; </ins> const currentBottomFocusElement = elementsToRemove[elementsToRemove.length - 1]; <del> const nextFocusElement = !currentBottomFocusElement || currentBottomFocusElement instanceof SearchResult || arrayContainsElementOrParent(currentBottomFocusElement, elementsToRemove) ? </del> <ins> const nextFocusElement = opInfo.mustReselect && (!currentBottomFocusElement || currentBottomFocusElement instanceof SearchResult || arrayContainsElementOrParent(currentBottomFocusElement, elementsToRemove)) ? </ins> this.getElementToFocusAfterRemoved(this.viewer, <any>currentBottomFocusElement) : null;

Discussion:
The focus on a search result shouldn't change when removing an element that isn't affected by the removal. ]() Should be like this: ! Likely due to changes in
Change:
'length': ['em', 'rem', 'ex', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'cc'], 'angle': ['deg', 'rad', 'grad'], 'time': ['ms', 's'], <del> 'frequency': ['hz', 'khz'], </del> <ins> 'frequency': ['Hz', 'kHz'], </ins> 'resolution': ['dpi', 'dpcm'], 'percentage': ['%'] };

Discussion:
shows frequencies are recommended to have a capital H but in CSS's  this isn't so.
Change:
} public _onMouseLeave(e: EditorMouseEvent): void { <ins> if (this._mouseLeaveMonitor) { this._mouseLeaveMonitor.dispose(); this._mouseLeaveMonitor = null; } </ins> this.lastMouseLeaveTime = (new Date()).getTime(); this.viewController.emitMouseLeave({ event: e,

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.63.0 OS Version: Windows 11 Steps to Reproduce: a file where breakpoints can be set around the edge of the editor, in and out of the margin until the breakpoint stays even though the mouse is outside of the editor (see GIF below). ! This is important to me because I am using margin decorations in Monaco and running into the same issue there. Internally the event isn't triggered, so the decorations aren't removed. It seems to be specific to decorations in the glyph margin, as without these (e.g. line decorations) it doesn't seem to reproduce.
I can reproduce when moving the mouse quickly. I find it interesting that also the scrollbars suffer form the same problem (the scrollbars listen independently to ). I've also tried locally to replace with the somewhat more modern and I could still reproduce. Basically the browser simply forgets soemtiems to send us a or a event: <img width="538" alt="image" src="https://user-"
Change:
private onContextMenu(e: ITreeContextMenuEvent<IExpression>): void { const element = e.element; <ins> const selection = this.tree.getSelection(); </ins> this.watchItemType.set(element instanceof Expression ? 'expression' : element instanceof Variable ? 'variable' : undefined); const actions: IAction[] = []; <del> const actionsDisposable = createAndFillInContextMenuActions(this.menu, { arg: element, shouldForwardArgs: false }, actions); </del> <ins> const actionsDisposable = createAndFillInContextMenuActions(this.menu, { arg: element, shouldForwardArgs: true }, actions); </ins> this.contextMenuService.showContextMenu({ getAnchor: () => e.anchor, getActions: () => actions, <del> getActionsContext: () => element, </del> <ins> getActionsContext: () => element && selection.includes(element) ? selection : element ? [element] : [], </ins> onHide: () => dispose(actionsDisposable) }); }

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. --During debugging there is the option to copy the value from a watch variable. VSCode by default allows to inspect arrays. I can select with shift click a range of values within the array and they are highlighted. Pressing 'copy value' however, will only copy the value of the array that the mouse is hovering. It could be nice that if several values are highlighted all those values are copied into the clipboard. ! As a use case, I work with numerical methods and exporting those vector values to excel allows me to quickly validate that some operations are computed correctly, evolution of values during the solving phase, etc. Moreover, from the point of view of UX, in my humil opinion, it makes more sense that if multiple values are highlighted, all of them are copied to the clipboard, separated by n. Just a small suggestion, Thanks in advance, vscode is awesome
this feature request makes sense. I guess you would expect that each value is followed by a new line to distnguish between them? This is doable, assigning to next milestone to look into it then.
Yes, I suggested new line because it seems reasonable as it copy pastes well to excel and notepad and it resembles the structure you are 'seeing' in the screen. Thanks for answering so fast
Adding help wanted in case somebody from the community wants to help here. Code pointer The command should be changed that as arguments it gets an array of selected expressions. Might be a bit tricky for first time contributors to get 100% right.
I'll work on this
Change:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Codicon, registerIcon } from 'vs/base/common/codicons'; export const treeItemExpandedIcon = registerIcon('tree-item-expanded', Codicon.chevronDown); // collapsed is done with rotation export const treeFilterOnTypeOnIcon = registerIcon('tree-filter-on-type-on', Codicon.listFilter); export const treeFilterOnTypeOffIcon = registerIcon('tree-filter-on-type-off', Codicon.listSelection); export const treeFilterClearIcon = registerIcon('tree-filter-clear', Codicon.close); export const treeItemLoadingIcon = registerIcon('tree-item-loading', Codicon.loading); </ins>

Discussion:
Issue Type: <bBug</bIn latest Insiders build instead of loading icon I see spinning chevron for some tree nodes. It's mostly noticeable in GitHub Pull Request extension tree, however I was able to reproduce it in Call Hierarchy while expanding some nested trees. Looks like has lower priority than which prevents icon change. /cc VS Code version: Code - Insiders 1.45.0-insider (, 2020-04-22T08:44:55.510Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </detailsExtensions: none <!-- generated by issue reporter --
Change:
// Create directories as needed for (let i = directoriesToCreate.length - 1; i >= 0; i--) { directory = joinPath(directory, directoriesToCreate[i]); <del> await provider.mkdir(directory); </del> <ins> try { await provider.mkdir(directory); } catch (error) { if (toFileSystemProviderErrorCode(error) !== FileSystemProviderErrorCode.FileExists) { // For mkdirp() we tolerate that the mkdir() call fails // in case the folder already exists. This follows node.js // own implementation of fs.mkdir({ recursive: true }) and // reduces the chances of race conditions leading to errors // if multiple calls try to create the same folders // As such, we only throw an error here if it is other than // the fact that the file already exists. // (see also https://github.com/microsoft/vscode/issues/89834) throw error; } } </ins> } }

Discussion:
Could be related to the Untitled file title changes. The tests hang here: ! /cc
The same on macOS.

This was nicely uncovered by our internally implements a logic that throws an error in case multiple calls are made in parallel and a folder was created in the meantime. This is due to the fact that throws when a directory already exists. However, node's own implementation does not throw with the recurse option set to . We should align our implementation and not throw when a folder already exists.
Verification: run our smoke test and see how the hot-exit tests succeed.
Change:
// Create directories as needed for (let i = directoriesToCreate.length - 1; i >= 0; i--) { directory = joinPath(directory, directoriesToCreate[i]); <del> await provider.mkdir(directory); </del> <ins> try { await provider.mkdir(directory); } catch (error) { if (toFileSystemProviderErrorCode(error) !== FileSystemProviderErrorCode.FileExists) { // For mkdirp() we tolerate that the mkdir() call fails // in case the folder already exists. This follows node.js // own implementation of fs.mkdir({ recursive: true }) and // reduces the chances of race conditions leading to errors // if multiple calls try to create the same folders // As such, we only throw an error here if it is other than // the fact that the file already exists. // (see also https://github.com/microsoft/vscode/issues/89834) throw error; } } </ins> } }

Discussion:
This was nicely uncovered by our internally implements a logic that throws an error in case multiple calls are made in parallel and a folder was created in the meantime. This is due to the fact that throws when a directory already exists. However, node's own implementation does not throw with the recurse option set to . We should align our implementation and not throw when a folder already exists.
Verification: run our smoke test and see how the hot-exit tests succeed.
Change:
private readonly editorActionsToolbarDisposables = this._register(new DisposableStore()); private readonly editorActionsDisposables = this._register(new DisposableStore()); <ins> private readonly contextMenuContextKeyService: IContextKeyService; </ins> private resourceContext: ResourceContextKey; private editorPinnedContext: IContextKey<boolean>;

Discussion:
Version: 1.85.0 Electron: 25.9.7 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Windows x64 10.0. ( I am using a Python interpter ) Steps to Reproduce: Have at least 1 tab/file open the tab ( at the top ) : The run button disappears It's a very very minor bug and simply you just open another file to have it reappear. !
Thanks for reporting this! It lead to fixing this and other bugs we had :)
I am glad to hear!
Change:
import { ITextEditorModel } from 'vs/editor/common/services/resolverService'; import * as nls from 'vs/nls'; import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration'; <del> import { ConfigurationScope, Extensions, IConfigurationNode, IConfigurationPropertySchema, IConfigurationRegistry, IExtensionInfo, IRegisteredConfigurationPropertySchema, OVERRIDE_PROPERTY_REGEX } from 'vs/platform/configuration/common/configurationRegistry'; </del> <ins> import { ConfigurationScope, Extensions, IConfigurationNode, IConfigurationRegistry, IExtensionInfo, IRegisteredConfigurationPropertySchema, OVERRIDE_PROPERTY_REGEX } from 'vs/platform/configuration/common/configurationRegistry'; </ins> import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { Registry } from 'vs/platform/registry/common/platform'; import { EditorModel } from 'vs/workbench/common/editor/editorModel';

Discussion:
Tested on Insiders Build 1.65.0 and Build 1.64.2. If an extension's settings are viewed, the presentation order is respected, but _only if the "Search settings" bar is empty. If the search bar contains anything, including the name of the extension (matching all settings for that extension), the presentation order is alphabetical. Given that the presentation can still be controlled by the selected extension name in the left menu, it would seem logically possible to respect the sort ordering within an extension settings group. Examples: Following ordering (search area blank): ! Not following ordering: !
Verification steps: or write an extension with settings where the settings group and the individual settings use fields to determine the order. An example is at Also make the setting keys similar so that they can show up under the same search query. the extension, navigate to the Settings editor, and clear the search widget. that the settings for that extension are displayed in the expected order. a query to the search widget such that those extension settings still show up. that the filtered settings for that extension show up in the same order as in step 3.
Tested just now on LGTM
Change:
} as const; export const mediaMimes = new Set([ <ins> 'image/avif', </ins> 'image/bmp', 'image/gif', 'image/jpeg',

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.87.2 OS Version: MacOS/Linux Steps to Reproduce: Drag AVIF image from MacOS Finder / KDE Dolphin to VS code markdown image copied to workspace, and to be to markdown result: AVIF file not copied, and is to markdown
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
Hi I am working in this feature. Please let me know if any concerns.
Hi again Thia happened to be faster than I thought! Please have a look at my proposal on and please don't hesitate to tell me if you have any concern. Best, /Bruno
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -b8df-69ca-c20a- --:slightlyfrowningface: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our . Happy Coding!