jiebi/CodeConvo huggingface dataset:
Change:
super(id, label, undefined, true); } <del> run(): Promise<boolean> { </del> <ins> async run(): Promise<void> { </ins> if (!this.enabled) { <del> return Promise.resolve(false); </del> <ins> return; </ins> } this.enabled = false; <del> return showReleaseNotes(this.instantiationService, this.version) .then(undefined, () => { const action = this.instantiationService.createInstance(OpenLatestReleaseNotesInBrowserAction); return action.run().then(() => false); }); </del> <ins> try { await showReleaseNotes(this.instantiationService, this.version); } catch (err) { const action = this.instantiationService.createInstance(OpenLatestReleaseNotesInBrowserAction); try { await action.run(); } catch (err2) { throw new Error(`${err.message} and ${err2.message}`); } } </ins> } }

Discussion:
Issue Type: <bBug</bIf you try to open the release notes while offline, then if a release notes url is configured then vscode will open it in a browser, otherwise it will do nothing, not even show an error. Later, if you go online and try opening the release notes again, the same will happen - vscode will never attempt to open the release notes webview again. This state is preserved until you reload the window. Steps to Reproduce: offline (you can also open devtools in vscode and go to the network tab and change the "online" at the top to "offline") to open the release notes using from the command palette. on whether you are on an official vscode build or a local build, the release notes page will be opened in your default browser. On a local build nothing happens. back online to open the release notes again same thing will happen the window using from the command palette to open the release notes again release notes open in a webview inside vscode VS Code version: Code - Insiders 1.47.0-insider (, 2020-06-26T06:20:06.931Z) OS version: Windows_NT x64 10.0. Does this issue occur when all extensions are disabled?: Yes
Change:
if (this.renderLabel) { this._actionLabel.classList.add('notebook-label'); this._actionLabel.innerText = this._action.label; <del> this._actionLabel.title = primaryAction.tooltip.length ? primaryAction.tooltip : primaryAction.label; </del> <ins> this._hover?.update(primaryAction.tooltip.length ? primaryAction.tooltip : primaryAction.label); </ins> } } else { if (this.renderLabel) { this._actionLabel.classList.add('notebook-label'); this._actionLabel.innerText = this._action.label; <del> this._actionLabel.title = this._action.tooltip.length ? this._action.tooltip : this._action.label; </del> <ins> this._hover?.update(this._action.tooltip.length ? this._action.tooltip : this._action.label); </ins> } } }

Discussion:
open a notebook hover over its and actions there is the custom hover but on further move there is also the native hover (maybe because these actions combine text and icon?)
Change:
} let { top, left } = placement; <del> if (!alignAtTop) { </del> <ins> if (!alignAtTop && height > anchorBox.height) { </ins> top = bottom - height; } const editorDomNode = this._editor.getDomNode();

Discussion:
on a line towards the bottom of the view port trigger suggest notice how the details view is always bottom aligned it should be top aligned as long as it isn't taller than the list <img width="1057" alt="image" src=""
Change:
test('label caching', () => { <del> const m = new Memento('cachedResourceFormatters', storageService).getMemento(StorageScope.GLOBAL, StorageTarget.MACHINE); </del> <ins> const m = new Memento('cachedResourceLabelFormatters', storageService).getMemento(StorageScope.GLOBAL, StorageTarget.MACHINE); </ins> const makeFormatter = (scheme: string): ResourceLabelFormatter => ({ formatting: { label: `${path} (${scheme})`, separator: '/' }, scheme }); assert.deepStrictEqual(m, {});

Discussion:
Repro: a file in vscode, example copy relative path command copy path of active file command We should add some unit tests for this or improve existing ones to catch this case.
Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our . Please take the time to review these and update the issue. Happy Coding!
Latest insiders, macOS, any workspaces. I use these commands many times per day and it's a huge pain to swap the separators every time. Version: 1.68.0-insider Commit: Date: 2022-06-01T05:17:25.414Z Electron: 17.4.6 Chromium: 98.0.4758.141 16.13.0 V8: 9.8.177.13-electron.0 OS: Darwin x64 21.5.0
Can you try to run where is an empty folder? This will ensure Code is starting with a fresh data directory, e.g. no specific settings and without any extensions running.
Still happens with
I'm looking into it now to make sure it's not on my end
I was asking because there is a setting, but it only applies to copying relative paths.
I tried clearing user data dir again and it worked, not sure what happened before, might not have made it into the clipboard for some reason or I made a mistake. When I repro it with extensions disabled and all settings cleared there are several formatters with the wrong separator: <img width="438" alt="Screen Shot 2022-06-01 at 9 07 40 am" src="https://user-"Definitely don't have set.
The bad formatters are coming through via the momento: Can extensions register these? Any ideas on how I could track down the source? I'll try adding my extensions in the clear user data dir.
to load all my extensions doesn't repro, I don't suppose the momento is synced across platforms? !
Likely cause of regression: cc
PR out:
this didn't end up fixing it because the synced formatters still seem to be getting pulled in. Any ideas on how we should clear out the bad cache? I was hoping this would be a quick drive by fix.

Anywhere labels are used gets impacted for multi platform users: <img width="396" alt="Screen Shot 2022-06-03 at 4 53 07 am" src="https://user-"
I think a bandaid fix is to either revert this change entirely or change the storage key that is used.
I don't think anyone has a strong preference on name so updating the storage key name is sane to me.
thanks, will do this today
Thanks for fixing this I didn't realize that we synced workspace state as part of settings sync.
Change:
import { withNullAsUndefined } from 'vs/base/common/types'; import { EnvironmentVariableInfoChangesActive, EnvironmentVariableInfoStale } from 'vs/workbench/contrib/terminal/browser/environmentVariableInfo'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; <del> import { URI } from 'vs/base/common/uri'; </del> import { IEnvironmentVariableInfo, IEnvironmentVariableService, IMergedEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable'; import { IProcessDataEvent, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalEnvironment, ITerminalLaunchError, FlowControlConstants, TerminalShellType, ILocalTerminalService, IOffProcessTerminalService, ITerminalDimensions } from 'vs/platform/terminal/common/terminal'; import { TerminalRecorder } from 'vs/platform/terminal/common/terminalRecorder';

Discussion:
With we are trying to remove from the configuration resolver service. The new way to get the environment is async and requires that the all the configuration resolver methods be async. I have started the adoption of the new async methods in , but there's one use in terminal that looks like it will require more work: Option 1: Convert that use of to use . Option 2: I provide a new method on the configuration resolver service that is sync, but requires you to pass in your own . Which option makes the most sense here?
I think the usage of in must remain sync since it's used as part of the extension API. Is this a problem there since is fine to use? The main purpose of this type was to share code between variable processes.
Sounds like Option 2 is the way to go then. I will add a new method that is sync and lets you pass in your own .
Added: will that let you keep your code reuse?
Change:
allowedAttributes: { '*': [ 'align', <del> ] </del> <ins> ], img: ['src', 'alt', 'title', 'aria-label', 'width', 'height'], </ins> }, filter(token: { tag: string, attrs: { readonly [key: string]: string } }): boolean { return token.tag !== 'svg';

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. --- VS Code Version: OS Version: macOS Big Sur (Version ) Steps to Reproduce: an extension's page from the Extensions view. For example, this is what the extension README looks like: <img width="1193" alt="Screen Shot 2021-02-27 at 2 07 49 PM" src="https://user-"The attribute of the image is 200, however, the real width of the image is larger, and it seems that the real width is used rather than the attribute. <!-- 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 direct to the extension publisher. The 'Help Report Issue' dialog can assist with this. --
/verified
Change:
} */ this._telemetryReporter.sendTelemetryEvent('session', { <del> isEdu: edu ?? 'unknown', isManaged: managed ?? 'unknown' </del> <ins> isEdu: edu, // Apparently, this is how you tell if a user is an EMU... isManaged: session.account.label.includes('_') ? 'true' : 'false' </ins> }); }

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/No <!-- 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: NA OS Version: NA Steps to Reproduce: The github education team sees about calls from Visual-studio-code in an hour for api/user. This is quite unusual and since we are rate limiting anyway, it is not an immediate issue. From initial discussions with I understand that the call is made only for telemetry and has no impact on the user. So, raising this bug, if we can find a better way to do telemetry without having to rate limit. This here shows some more details.
, can you please help me understand what is the likelihood of this work getting prioritised and by when can we expect to resolve this issue.
I wasn't able to get to it this week during our allocated debt time so I will try again to make time early April. I'll let you know if anything changes.
Change:
lines.pop(); } <del> outputChannelLogger.logGitCommand(lines.join('n')); </del> <ins> outputChannelLogger.log(lines.join('n')); </ins> }; git.onOutput.addListener('log', onOutput); disposables.push(toDisposable(() => git.onOutput.removeListener('log', onOutput)));

Discussion:
Testing open the settings and change the setting open the git output view. Nothing has changed there, no message that the log level has change, not any debug messages the setting is only the initial level. It would be nice if a setting change also change the actual log level . Alternative describe in the settings description that the setting is only represents the initial log level, and that a reload is necessary. (I'd rather prefer the first approach as we want settings to be 'live')

Testing Version: 1.68.0-insider (user setup) Commit: Date: 2022-05-31T05:17:04.479Z Run the command and select Would be nice to get a message in the log
Looks like the the message is not shown as it is of type and is less than than. Would be good to always show it, regardless of the current and the new level. Same problem with the initial message when the output is started.
Change:
export const enum MarkerTag { Unnecessary = 1, <ins> Deprecated = 2 </ins> } export enum MarkerSeverity {

Discussion:
Now that has been to the API, I would like to support the proposal from to use it for tagging deprecated items. I figure the associated styling might be a strikethrough as proposed in but you guys can work that out separately.
I would be interested in helping out here with this and perhaps even . Without a lot of context, I assume this issue is specifically to add a new enum member here: I could open a PR that adds a member, if that's the case. edit: Looks like more applicable location would be and then opening a similar PR to
Yes, is the way to go. Find your way along usages/implementations of
Thanks, I'll work on that today.
Leaving this open so that we discuss this in the API sync
API has been finalised.
Change:
return WinJS.Promise.join(promises); } <del> public collapseDeepestExpandedLevel(): WinJS.Promise { var levelToCollapse = this.findDeepestExpandedLevel(this.input, 0); var items = [this.input]; for (var i = 0; i < levelToCollapse; i++) { items = arrays.flatten(items.map(node => node.getChildren())); } var promises = items.map(child => this.collapse(child, false)); return WinJS.Promise.join(promises); } private findDeepestExpandedLevel(item: Item, currentLevel: number): number { var expandedChildren = item.getChildren().filter(child => child.isExpanded()); if (!expandedChildren.length) { return currentLevel; } return Math.max(...expandedChildren.map(child => this.findDeepestExpandedLevel(child, currentLevel + 1))); } </del> public toggleExpansion(element: any, recursive: boolean = false): WinJS.Promise { return this.isExpanded(element) ? this.collapse(element, recursive) : this.expand(element); }

Discussion:
introduced a  API to the tree via I'm pretty sure that method's implementation can be achieved outside the tree itself. There are , and methods on it. If so, please remove the API method and implement on the search usage side.
This was to the tree with the idea in mind that it would be useful elsewhere like the file explorer. And in fact I'd really like to have the same behavior on the file explorer. So moving it into search code is not the right thing to do but it could go into some TreeHelper class outside of the tree itself.
No need to overload with classes. A simple util function would do.
I don't think this is actually achievable outside the tree itself with the current tree API. It needs to calculate the tree depth to collapse to, and the navigator from just returns elements of the tree without the context of where they are in the tree. IMO, it makes sense for this method to stay on the tree since it's coupled with the tree's data
Good point. But this is really only used for search. I don't really buy into the generic usefulness of this as an API call, which needs to be maintained for the entire tree's lifecycle. As far as I am aware, search trees can only go 2/3 levels deep, depending on whether there are multiple folders in the workspace or not. That knowledge is kept in the search's tree user; the same entity knows exactly what it should collapse or otherwise. Can't it just call the right calls?
Change:
import { TerminalViewPane } from 'vs/workbench/contrib/terminal/browser/terminalView'; import { IRemoteTerminalAttachTarget, IStartExtensionTerminalRequest, ITerminalBackend, ITerminalConfigHelper, ITerminalProcessExtHostProxy, ITerminalProfileService, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; <ins> import { columnToEditorGroup } from 'vs/workbench/services/editor/common/editorGroupColumn'; </ins> import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; <del> import { ACTIVE_GROUP, IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; </del> <ins> import { IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; </ins> import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { ILifecycleService, ShutdownReason, StartupKind, WillShutdownEvent } from 'vs/workbench/services/lifecycle/common/lifecycle';

Discussion:
I noticed terminals can accept : Note that this does not map 1 to 1 to , you have to: offset properly: convert properly: //cc
Steps: open 2 empty editor groups, focus the first group execute a command that triggers below code [1] terminal opens in first group not second
Moving to September. //cc
Change:
updateProblemMatchers(); jsonRegistry.notifySchemaChanged(schemaId); }); <ins> const configurationRegistry = Registry.as<IConfigurationRegistry>(Extensions.Configuration); configurationRegistry.registerConfiguration({ id: 'Tasks', order: 100, title: nls.localize('tasksConfigurationTitle', "Tasks"), type: 'object', properties: { 'tasks.terminal.windowsAllowConpty': { markdownDescription: nls.localize('tasks.terminal.windowsAllowConpty', "Works in conjunction with the `#terminal.integrated.windowsEnableConpty#` setting. Both must be enabled for tasks to use conpty. Defaults to `false`."), type: 'boolean', default: false } } }); </ins>

Discussion:
Steps to reproduce: clone open a terminal Debug viewlet Launch client Observe that building never finishes Now switch the terminal to the npm: watch task Observe: building finished. Looks like the terminal is not delivering any output as long as the view is not visible.
are there any differences on when onLineData occurs in the terminal with conpty?
discovered a new issue
Change:
} public getAllDecorations(ownerId: number = 0, filterOutValidation: boolean = false): model.IModelDecoration[] { <del> const result = this._decorationsTree.getAll(this, ownerId, filterOutValidation, false); result.push(...this._decorationProvider.getAllDecorations(ownerId, filterOutValidation)); </del> <ins> let result = this._decorationsTree.getAll(this, ownerId, filterOutValidation, false); result = result.concat(this._decorationProvider.getAllDecorations(ownerId, filterOutValidation)); </ins> return result; }

Discussion:
I have inlayHints turned on for TypeScript, as well as bracket pair and guide colorization. I was searching through a number of files, clicking on each one pretty quickly, and then at some point I started getting an error <filename. clone the TypeScript repository set the following settings: In the Search View, look for (this is the exact query i was using) Now pretty rapidly start clicking on files in the search results pane Eventually (after clicking on like 15 to 20 files), especially after opening something large like , you'll get the Model is disposed error. ! When I checked the console for errors, I found this stack trace that referenced a few times, so I'm not sure if its related or coincidence. ! also saw this call stack !
I can reproduce. I think the root cause is the error. This error ends up being thrown in the text model creation phase and also in the method, which might lead to these errors. I can reproduce with the above settings when trying to open
Only needs these two settings: a large file (~3MB JavaScript file for my case) close the file errors in DevTools <details<summaryClick to expand</summary</detailsseconds, got more: <details<summaryClick to expand</summary</detailscan't open any file <details<summaryClick to expand</summary</detailsEDIT: How to get error source position? Source map doesn't seem to work. EDIT2: Looks like the first "Maximum call stack size exceeded" error happens here:
Change:
export const INLINE_CHAT_ID = 'interactiveEditor'; export const INTERACTIVE_EDITOR_ACCESSIBILITY_HELP_ID = 'interactiveEditorAccessiblityHelp'; <ins> export const enum EditMode { Live = 'live', Preview = 'preview' } </ins> export const CTX_INLINE_CHAT_HAS_PROVIDER = new RawContextKey<boolean>('inlineChatHasProvider', false, localize('inlineChatHasProvider', "Whether a provider for interactive editors exists")); export const CTX_INLINE_CHAT_VISIBLE = new RawContextKey<boolean>('inlineChatVisible', false, localize('inlineChatVisible', "Whether the interactive editor input is visible")); export const CTX_INLINE_CHAT_FOCUSED = new RawContextKey<boolean>('inlineChatFocused', false, localize('inlineChatFocused', "Whether the interactive editor input is focused"));

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. --Related For migrating towards ESM in VSCode, it seems the tsconfig option could be useful, ensuring that imports are compatible with ESM. For example, this typescript code transpiled to javascript would cause a runtime error because of the export: The rule would enforce a type only import for : Enabling the tsconfig option in VSCode, it seems these files would need to adjusted:
We reverted this because we learnt, albeit very late, that it has disabled inlining of const enums. See
Change:
try { const installedExtensions = await this._installedExtensions; <del> const options = { text: `${this.marketplaceQuery} ${value}`, pageSize: 40 }; </del> <ins> const options = { text: `${this.marketplaceQuery} ${value}`, pageSize: 20 }; </ins> const pager = await this.extensionGalleryService.query(options, token); <del> for (let i = 0; i < pager.total && i < 1; i++) { </del> <ins> for (let i = 0; i < pager.total && i < 1; i++) { // loading multiple pages is turned of for now to avoid flickering </ins> if (token.isCancellationRequested) { break; } const nThemes = this._marketplaceThemes.length; <ins> const gallery = i === 0 ? pager.firstPage : await pager.getPage(i, token); </ins> <del> const gallery = await pager.getPage(i, token); </del> <ins> const promises: Promise<IWorkbenchTheme[]>[] = []; const promisesGalleries = []; </ins> for (let i = 0; i < gallery.length; i++) { if (token.isCancellationRequested) { break;

Discussion:
Open the color theme picker and select the first option () Observe that it takes around 5 seconds for the results to show. This used to be much snappier