Question:
VS Code version: 1.63.0-insider Jupyter Extension version : v2021.10. Python Extension version : v2021.12.-dev OS : Windows 11 Python and/or Anaconda version: 3.9.7 Type of virtual environment used : N/A Jupyter server running: Local Render correctly the Markdown text using the default renderer: ! This is the correct rendering for this: ! a new Jupyter notebook a new cell code with the following Python: Ctrl-Enter to render cell Via "Choose Output Minetype", selecting the "non default" renderer (i.e. the one with "(vscode.markown-language-feature") for Markdown: ! Gives the expected result: ! Also, I could not find a setting allowing me to make the functioning "Output Mimetype" the default... Thanks!
The actual repro attached.
this might be another example of the wrong renderer being chosen.
I get the correct default renderer first time now. text/plain is the only other output option. !

import { handleANSIOutput } from 'vs/workbench/contrib/debug/browser/debugANSIHandling'; import { LinkDetector } from 'vs/workbench/contrib/debug/browser/linkDetector'; import { ICellOutputViewModel, IRenderOutput, RenderOutputType } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; <ins> import { INotebookDelegateForOutput, IOutputTransformContribution as IOutputRendererContribution } from 'vs/workbench/contrib/notebook/browser/view/notebookRenderingCommon'; </ins> import { OutputRendererRegistry } from 'vs/workbench/contrib/notebook/browser/view/output/rendererRegistry'; import { truncatedArrayOfString } from 'vs/workbench/contrib/notebook/browser/view/output/transforms/textHelper'; import { IOutputItemDto, TextOutputLineLimit } from 'vs/workbench/contrib/notebook/common/notebookCommon'; <del> import { INotebookDelegateForOutput, IOutputTransformContribution as IOutputRendererContribution } from 'vs/workbench/contrib/notebook/browser/view/notebookRenderingCommon'; </del> class JavaScriptRendererContrib extends Disposable implements IOutputRendererContribution {


Question:
VS Code version: 1.63.0-insider Jupyter Extension version : v2021.10. Python Extension version : v2021.12.-dev OS : Windows 11 Python and/or Anaconda version: 3.9.7 Type of virtual environment used : N/A Jupyter server running: Local Render correctly the Markdown text using the default renderer: ! This is the correct rendering for this: ! a new Jupyter notebook a new cell code with the following Python: Ctrl-Enter to render cell Via "Choose Output Minetype", selecting the "non default" renderer (i.e. the one with "(vscode.markown-language-feature") for Markdown: ! Gives the expected result: ! Also, I could not find a setting allowing me to make the functioning "Output Mimetype" the default... Thanks!
The actual repro attached.
this might be another example of the wrong renderer being chosen.
I get the correct default renderer first time now. text/plain is the only other output option. !

} } <del> class MdRendererContrib extends Disposable implements IOutputRendererContribution { getType() { return RenderOutputType.Mainframe; } getMimetypes() { return [Mimes.markdown, Mimes.latex]; } constructor( public notebookEditor: INotebookDelegateForOutput, @IInstantiationService private readonly instantiationService: IInstantiationService, ) { super(); } render(output: ICellOutputViewModel, item: IOutputItemDto, container: HTMLElement, notebookUri: URI): IRenderOutput { const disposable = new DisposableStore(); const str = getStringValue(item); const mdOutput = document.createElement('div'); const mdRenderer = this.instantiationService.createInstance(MarkdownRenderer, { baseUrl: dirname(notebookUri) }); mdOutput.appendChild(mdRenderer.render({ value: str, isTrusted: true, supportThemeIcons: true }, undefined, { gfm: true }).element); container.appendChild(mdOutput); disposable.add(mdRenderer); return { type: RenderOutputType.Mainframe, disposable }; } } </del> class ImgRendererContrib extends Disposable implements IOutputRendererContribution { getType() { return RenderOutputType.Mainframe;


Question:
VS Code version: 1.63.0-insider Jupyter Extension version : v2021.10. Python Extension version : v2021.12.-dev OS : Windows 11 Python and/or Anaconda version: 3.9.7 Type of virtual environment used : N/A Jupyter server running: Local Render correctly the Markdown text using the default renderer: ! This is the correct rendering for this: ! a new Jupyter notebook a new cell code with the following Python: Ctrl-Enter to render cell Via "Choose Output Minetype", selecting the "non default" renderer (i.e. the one with "(vscode.markown-language-feature") for Markdown: ! Gives the expected result: ! Also, I could not find a setting allowing me to make the functioning "Output Mimetype" the default... Thanks!
The actual repro attached.
this might be another example of the wrong renderer being chosen.
I get the correct default renderer first time now. text/plain is the only other output option. !


Question:
VS Code version: 1.63.0-insider Jupyter Extension version : v2021.10. Python Extension version : v2021.12.-dev OS : Windows 11 Python and/or Anaconda version: 3.9.7 Type of virtual environment used : N/A Jupyter server running: Local Render correctly the Markdown text using the default renderer: ! This is the correct rendering for this: ! a new Jupyter notebook a new cell code with the following Python: Ctrl-Enter to render cell Via "Choose Output Minetype", selecting the "non default" renderer (i.e. the one with "(vscode.markown-language-feature") for Markdown: ! Gives the expected result: ! Also, I could not find a setting allowing me to make the functioning "Output Mimetype" the default... Thanks!
The actual repro attached.
this might be another example of the wrong renderer being chosen.
I get the correct default renderer first time now. text/plain is the only other output option. !

['image/svg+xml', { supportedByCore: true }], ['application/json', { alwaysSecure: true, supportedByCore: true }], [Mimes.latex, { alwaysSecure: true, supportedByCore: true }], <del> [Mimes.markdown, { alwaysSecure: true, supportedByCore: true }], </del> [Mimes.text, { alwaysSecure: true, supportedByCore: true }], ['text/html', { supportedByCore: true }], ['text/x-javascript', { alwaysSecure: true, supportedByCore: true }], // secure because rendered as text, not executed


Question:
<!-- 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. --Hello, great teacher! In the long-term use of vscode, I found that the number of method parameter overloads has a dark foreground color, and my eyes will be tired if I see it for a long time. I ask the teacher to allow us to modify the foreground color to our own suitable foreground color. It will be great for people who have been coding for a long time! Hope this problem can get your support and help from the teacher to improve it in the next milestone. Thank you very much! !
I would advise you to switch to light theme, is what I recommand. !
Thanks for your answer! But looking at the light theme for a long time will make the eyes more tired. These are one of the UI elements that are used very, very frequently. Improving it will be very friendly to most people. From the picture you provided, it can be seen that even in the light theme, it is also very dark, and it takes a very difficult time to recognize it.
If you want to improve the situation more perfect, it is recommended to add the following oval background color settings, which will be very beautiful and modern, and can bring people a very pleasant coding experience more in line with ergonomics. !
The contrast on the numbers needs to be increased. Here's the relevant css:
I would recommend these themes below : official dark pro is coming (dark black) Choose the one which is comfortable for you after trying with all the three hope i was helpful
Thank you for your reply! I tried these topics a long time ago and can't solve this problem.
Hello, teacher! Is it convenient to modify the style of this css?
Hello, teacher! This problem is really important to me, because my eyesight is not very good, so I hope you can accept it and help solve it in the next milestone. After solving this problem, I will no longer report UI-related problems in the future. I really hope you can help solve it, thank you very much for your hard work and efforts!
Hello, teacher! This problem is really important to me, because my eyesight is not very good, so I hope you can accept it and help solve it in the next milestone. After solving this problem, I will no longer report UI-related problems in the future. I really hope you can help solve it, thank you very much for your hard work and efforts!
you can just modify the css just like said. go to , then search for , find next to it, and change it to .
If possible you can switch to the Cobalt theme. I am using it from long time and it's too good.
thanks for your help! I tried the solution you gave, but a similar solution could not solve my problem.
Dear teacher! Can you solve this problem in the next milestone? If the teacher can solve it in the next milestone, the students really thank you very much! You can refer to the following style design: It is recommended to add the following oval background color settings, which will be very beautiful and modern, more ergonomic, and can bring a very pleasant coding experience. !
I edited this issue. I appreciate any feedback on the PR
Hello, teacher! The new year has come, I wish the teachers a happy new year! ! ! In the new year, I hope that the teacher can help solve this problem in time, thank you very much! To solve this problem, there are no other UI related problems to be solved later.
Hello, teacher! VSCode is a great project that gives users the greatest autonomy from the very beginning, allowing users to personalize configurations according to their own habits, so it can fully surpass the long-born jetbrion series in just 5 years. The most important reason is that VSCode's open source thinking and allowing users to customize and configure VSCode development methods to the greatest extent can achieve today's achievements. I hope VSCode can continue to develop this way of thinking and development, focusing on every reasonable request of users and need. Thank you here! vscode contributors
Hello, teacher! VSCode is a great project that gives users the greatest autonomy from the very beginning, allowing users to personalize configurations according to their own habits, so it can fully surpass the long-born jetbrion series in just 5 years. The most important reason is that VSCode's open source thinking and allowing users to customize and configure VSCode development methods to the greatest extent can achieve today's achievements. I hope VSCode can continue to develop this way of thinking and development, focusing on every reasonable request of users and need. Thank you here! vscode contributors
Thank you very much! teacher!
Hey! I also think that text should be more readable. I created a PR to fix that:

text-align: center; height: 12px; line-height: 12px; <del> opacity: 0.5; </del> font-family: var(--monaco-monospace-font); }


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of

private static readonly _name = 'pluginHostTelemetry'; <del> private _oldTelemetryEnabledValue: boolean | undefined; </del> constructor( extHostContext: IExtHostContext, @ITelemetryService private readonly _telemetryService: ITelemetryService, @IConfigurationService private readonly _configurationService: IConfigurationService, <del> @IEnvironmentService private readonly _environmenService: IEnvironmentService, </del> <ins> @IEnvironmentService private readonly _environmentService: IEnvironmentService, </ins> @IProductService private readonly _productService: IProductService ) { super(); this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostTelemetry); <del> if (supportsTelemetry(this._productService, this._environmenService)) { </del> <ins> if (supportsTelemetry(this._productService, this._environmentService)) { </ins> this._register(this._configurationService.onDidChangeConfiguration(e => { if (e.affectsConfiguration(TELEMETRY_SETTING_ID) || e.affectsConfiguration(TELEMETRY_OLD_SETTING_ID)) { <del> const telemetryEnabled = this.telemetryEnabled; // Since changing telemetryLevel from "off" => "error" doesn't change the isEnabled state // We shouldn't fire a change event if (telemetryEnabled !== this._oldTelemetryEnabledValue) { this._oldTelemetryEnabledValue = telemetryEnabled; this._proxy.$onDidChangeTelemetryEnabled(this.telemetryEnabled); } </del> <ins> this._proxy.$onDidChangeTelemetryLevel(this.telemetryLevel); </ins> } })); } <del> this._proxy.$initializeTelemetryEnabled(this.telemetryEnabled); </del> <ins> this._proxy.$initializeTelemetryLevel(this.telemetryLevel); </ins> } <del> private get telemetryEnabled(): boolean { if (!supportsTelemetry(this._productService, this._environmenService)) { return false; </del> <ins> private get telemetryLevel(): TelemetryLevel { if (!supportsTelemetry(this._productService, this._environmentService)) { return TelemetryLevel.NONE; </ins> } <del> return getTelemetryLevel(this._configurationService) === TelemetryLevel.USAGE; </del> <ins> return getTelemetryLevel(this._configurationService); </ins> } $publicLog(eventName: string, data: any = Object.create(null)): void {


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of

return extHostTerminalService.getDefaultShell(false); }, get isTelemetryEnabled() { <del> return extHostTelemetry.getTelemetryEnabled(); </del> <ins> return extHostTelemetry.getTelemetryConfiguration(); </ins> }, get onDidChangeTelemetryEnabled(): Event<boolean> { return extHostTelemetry.onDidChangeTelemetryEnabled; }, <ins> get telemetryConfiguration(): vscode.TelemetryConfiguration { checkProposedApiEnabled(extension, 'telemetry'); return extHostTelemetry.getTelemetryDetails(); }, get onDidChangeTelemetryConfiguration(): Event<vscode.TelemetryConfiguration> { checkProposedApiEnabled(extension, 'telemetry'); return extHostTelemetry.onDidChangeTelemetryConfiguration; }, </ins> get isNewAppInstall() { const installAge = Date.now() - new Date(initData.telemetryInfo.firstSessionDate).getTime(); return isNaN(installAge) ? false : installAge < 1000 * 60 * 60 * 24; // install age is less than a day


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of

import { IRemoteConnectionData, RemoteAuthorityResolverErrorCode, ResolverResult, TunnelDescription } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { ProvidedPortAttributes, TunnelCreationOptions, TunnelOptions, TunnelProviderFeatures } from 'vs/platform/remote/common/tunnel'; import { ClassifiedEvent, GDPRClassification, StrictPropertyCheck } from 'vs/platform/telemetry/common/gdprTypings'; <del> import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; </del> <ins> import { ITelemetryInfo, TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; </ins> import { ICreateContributedTerminalProfileOptions, IProcessProperty, IShellLaunchConfigDto, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalLocation } from 'vs/platform/terminal/common/terminal'; import { ThemeColor, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage';


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of

} export interface ExtHostTelemetryShape { <del> $initializeTelemetryEnabled(enabled: boolean): void; $onDidChangeTelemetryEnabled(enabled: boolean): void; </del> <ins> $initializeTelemetryLevel(level: TelemetryLevel): void; $onDidChangeTelemetryLevel(level: TelemetryLevel): void; </ins> } export interface ITerminalLinkDto {


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of

import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { Event, Emitter } from 'vs/base/common/event'; import { ExtHostTelemetryShape } from 'vs/workbench/api/common/extHost.protocol'; <ins> import { TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; import type { TelemetryConfiguration } from 'vscode'; </ins> export class ExtHostTelemetry implements ExtHostTelemetryShape { private readonly _onDidChangeTelemetryEnabled = new Emitter<boolean>(); readonly onDidChangeTelemetryEnabled: Event<boolean> = this._onDidChangeTelemetryEnabled.event; <del> private _enabled: boolean = false; </del> <ins> private readonly _onDidChangeTelemetryConfiguration = new Emitter<TelemetryConfiguration>(); readonly onDidChangeTelemetryConfiguration: Event<TelemetryConfiguration> = this._onDidChangeTelemetryConfiguration.event; </ins> <del> getTelemetryEnabled(): boolean { return this._enabled; </del> <ins> private _level: TelemetryLevel = TelemetryLevel.NONE; private _oldTelemetryEnablement: boolean | undefined; getTelemetryConfiguration(): boolean { return this._level === TelemetryLevel.USAGE; } getTelemetryDetails(): TelemetryConfiguration { return { isCrashEnabled: this._level >= TelemetryLevel.CRASH, isErrorsEnabled: this._level >= TelemetryLevel.ERROR, isUsageEnabled: this._level >= TelemetryLevel.USAGE }; </ins> } <del> $initializeTelemetryEnabled(enabled: boolean): void { this._enabled = enabled; </del> <ins> $initializeTelemetryLevel(level: TelemetryLevel): void { this._level = level; </ins> } <del> $onDidChangeTelemetryEnabled(enabled: boolean): void { this._enabled = enabled; this._onDidChangeTelemetryEnabled.fire(enabled); </del> <ins> $onDidChangeTelemetryLevel(level: TelemetryLevel): void { this._oldTelemetryEnablement = this.getTelemetryConfiguration(); this._level = level; if (this._oldTelemetryEnablement !== this.getTelemetryConfiguration()) { this._onDidChangeTelemetryEnabled.fire(this.getTelemetryConfiguration()); } this._onDidChangeTelemetryConfiguration.fire(this.getTelemetryDetails()); </ins> } }


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of


Question:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of

<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ declare module 'vscode' { export interface TelemetryConfiguration { /** * Whether or not usage telemetry collection is allowed */ isUsageEnabled: boolean; /** * Whether or not crash error telemetry collection is allowed */ isErrorsEnabled: boolean; /** * Whether or not crash report collection is allowed */ isCrashEnabled: boolean; } export namespace env { /** * Indicates what telemetry is enabled / disabled * Can be observed to determine what telemetry the extension is allowed to send */ export const telemetryConfiguration: TelemetryConfiguration; /** * An {@link Event} which fires when the collectable state of telemetry changes * Returns a {@link TelemetryConfiguration} object */ export const onDidChangeTelemetryConfiguration: Event<TelemetryConfiguration | undefined>; } } </ins>


Question:
Testing When browsing themes while offline, I didn't get any message that I could not connect to the marketplace and/or could not retrieve themes, with the only visible feedback being that the theme search would instantly return with an empty quickpick. It would be nice if this information could be surfaced somehow.
Verified: !

private readonly _marketplaceThemes: ThemeItem[] = []; private _searchOngoing: boolean = false; <ins> private _searchError: string | undefined = undefined; </ins> private readonly _onDidChange = new Emitter<void>(); private _tokenSource: CancellationTokenSource | undefined;


Question:
Testing When browsing themes while offline, I didn't get any message that I could not connect to the marketplace and/or could not retrieve themes, with the only visible feedback being that the theme search would instantly return with an empty quickpick. It would be nice if this information could be surfaced somehow.
Verified: !

return this._marketplaceThemes; } <del> public get isSearching(): boolean { return this._searchOngoing; } </del> public get onDidChange() { return this._onDidChange.event; }


Question:
Testing When browsing themes while offline, I didn't get any message that I could not connect to the marketplace and/or could not retrieve themes, with the only visible feedback being that the theme search would instantly return with an empty quickpick. It would be nice if this information could be surfaced somehow.
Verified: !

} catch (e) { if (!isCancellationError(e)) { this.logService.error(`Error while searching for themes:`, e); <ins> this._searchError = 'message' in e ? e.message : String(e); </ins> } } finally { this._searchOngoing = false;


Question:
Testing When browsing themes while offline, I didn't get any message that I could not connect to the marketplace and/or could not retrieve themes, with the only visible feedback being that the theme search would instantly return with an empty quickpick. It would be nice if this information could be surfaced somehow.
Verified: !

this.onDidChange(() => { let items = this.themes; <del> if (this.isSearching) { </del> <ins> if (this._searchOngoing) { </ins> items = items.concat({ label: '$(sync~spin) Searching for themes...', id: undefined, alwaysShow: true }); <ins> } else if (items.length === 0 && this._searchError) { items = [{ label: `$(error) ${localize('search.error', 'Error while searching for themes: {0}', this._searchError)}`, id: undefined, alwaysShow: true }]; </ins> } const activeItemId = quickpick.activeItems[0]?.id; const newActiveItem = activeItemId ? items.find(i => isItem(i) && i.id === activeItemId) : undefined;


Question:
Are all these settings still "experimental"? This seems like a mature feature !
This is a good point. I believe the wording is used to indicate the functionality has some quirks. We will see if thinks it's fine to remove it.
Yep let's do it, I think we just didn't remember to remove

default: true }, [TerminalSettingId.LocalEchoLatencyThreshold]: { <del> description: localize('terminal.integrated.localEchoLatencyThreshold', "Experimental: length of network delay, in milliseconds, where local edits will be echoed on the terminal without waiting for server acknowledgement. If '0', local echo will always be on, and if '-1' it will be disabled."), </del> <ins> description: localize('terminal.integrated.localEchoLatencyThreshold', "Length of network delay, in milliseconds, where local edits will be echoed on the terminal without waiting for server acknowledgement. If '0', local echo will always be on, and if '-1' it will be disabled."), </ins> type: 'integer', minimum: -1, default: 30,


Question:
Are all these settings still "experimental"? This seems like a mature feature !
This is a good point. I believe the wording is used to indicate the functionality has some quirks. We will see if thinks it's fine to remove it.
Yep let's do it, I think we just didn't remember to remove

default: 'auto' }, [TerminalSettingId.LocalEchoExcludePrograms]: { <del> description: localize('terminal.integrated.localEchoExcludePrograms', "Experimental: local echo will be disabled when any of these program names are found in the terminal title."), </del> <ins> description: localize('terminal.integrated.localEchoExcludePrograms', "Local echo will be disabled when any of these program names are found in the terminal title."), </ins> type: 'array', items: { type: 'string',


Question:
Are all these settings still "experimental"? This seems like a mature feature !
This is a good point. I believe the wording is used to indicate the functionality has some quirks. We will see if thinks it's fine to remove it.
Yep let's do it, I think we just didn't remember to remove

default: DEFAULT_LOCAL_ECHO_EXCLUDE, }, [TerminalSettingId.LocalEchoStyle]: { <del> description: localize('terminal.integrated.localEchoStyle', "Experimental: terminal style of locally echoed text; either a font style or an RGB color."), </del> <ins> description: localize('terminal.integrated.localEchoStyle', "Terminal style of locally echoed text; either a font style or an RGB color."), </ins> default: 'dim', oneOf: [ {


Question:
<!-- 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 (disabling Emmet) <!-- 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.62.3 OS Version: - Ubuntu 21.10 Steps to Reproduce: a .js file which is denoted a React file by VSCode part of the coding implement state for a counter with the following simple line: getting as far as typing I wish to just exit the square brackets however Emmet takes the first position tab results in an HTML string appearing, see pictures Question: How do I move Emmet down the list of suggestions in Autocomplete for a React file, I am using other extensions like TabOut (to get out of the square brackets without any autocomplete) which would be more appropriate. ! ! ! !
This issue heavily affect the react users.
Verification steps: a JSX file. . should not be an Emmet suggestion.
/verified

return; } <del> let noiseCheckPromise: Thenable<any> = Promise.resolve(); </del> <ins> let isNoisePromise: Thenable<boolean> = Promise.resolve(false); </ins> // Fix for https://github.com/microsoft/vscode/issues/32647 // Check for document symbols in js/ts/jsx/tsx and avoid triggering emmet for abbreviations of the form symbolName.sometext // Presence of > or * or + in the abbreviation denotes valid abbreviation that should trigger emmet if (!isStyleSheet(syntax) && (document.languageId === 'javascript' || document.languageId === 'javascriptreact' || document.languageId === 'typescript' || document.languageId === 'typescriptreact')) { let abbreviation: string = extractAbbreviationResults.abbreviation; <del> if (abbreviation.startsWith('this.')) { noiseCheckPromise = Promise.resolve(true); </del> <ins> // For the second condition, we don't want abbreviations that have [] characters but not ='s in them to expand // In turn, users must explicitly expand abbreviations of the form Component[attr1 attr2], but it means we don't try to expand a[i]. if (abbreviation.startsWith('this.') || /[[^]=]*]/.test(abbreviation)) { isNoisePromise = Promise.resolve(true); </ins> } else { <del> noiseCheckPromise = vscode.commands.executeCommand<vscode.SymbolInformation[]>('vscode.executeDocumentSymbolProvider', document.uri).then((symbols: vscode.SymbolInformation[] | undefined) => { return symbols && symbols.find(x => abbreviation === x.name || (abbreviation.startsWith(x.name + '.') && !/>|*|+/.test(abbreviation))); </del> <ins> isNoisePromise = vscode.commands.executeCommand<vscode.SymbolInformation[] | undefined>('vscode.executeDocumentSymbolProvider', document.uri).then(symbols => { return !!symbols && symbols.some(x => abbreviation === x.name || (abbreviation.startsWith(x.name + '.') && !/>|*|+/.test(abbreviation))); </ins> }); } } <del> return noiseCheckPromise.then((noise): vscode.CompletionList | undefined => { if (noise) { return; </del> <ins> return isNoisePromise.then((isNoise): vscode.CompletionList | undefined => { if (isNoise) { return undefined; </ins> } const config = getEmmetConfiguration(syntax!);


Question:
<!-- 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 (disabling Emmet) <!-- 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.62.3 OS Version: - Ubuntu 21.10 Steps to Reproduce: a .js file which is denoted a React file by VSCode part of the coding implement state for a counter with the following simple line: getting as far as typing I wish to just exit the square brackets however Emmet takes the first position tab results in an HTML string appearing, see pictures Question: How do I move Emmet down the list of suggestions in Autocomplete for a React file, I am using other extensions like TabOut (to get out of the square brackets without any autocomplete) which would be more appropriate. ! ! ! !
This issue heavily affect the react users.
Verification steps: a JSX file. . should not be an Emmet suggestion.
/verified

teardown(closeAllEditors); test('style attribute & attribute value in html', async () => {  await testHtmlCompletionProvider('<div style="|"', [{ label: 'padding: ;' }]); await testHtmlCompletionProvider(`<div style='|'`, [{ label: 'padding: ;' }]); await testHtmlCompletionProvider(`<div style='p|'`, [{ label: 'padding: ;' }]); await testHtmlCompletionProvider(`<div style='color: #0|'`, [{ label: '#000000' }]);   await testCompletionProvider('html', '<div style="|"', [{ label: 'padding: ;' }]); await testCompletionProvider('html', `<div style='|'`, [{ label: 'padding: ;' }]); await testCompletionProvider('html', `<div style='p|'`, [{ label: 'padding: ;' }]); await testCompletionProvider('html', `<div style='color: #0|'`, [{ label: '#000000' }]);  }); // https://github.com/microsoft/vscode/issues/79766 test('#79766, correct region determination', async () => {  await testHtmlCompletionProvider(`<div style="color: #000">di|</div>`, [   await testCompletionProvider('html', `<div style="color: #000">di|</div>`, [  { label: 'div', documentation: `<div>|</div>` } ]); }); // https://github.com/microsoft/vscode/issues/86941 test('#86941, widows should not be completed', async () => {  await testCssCompletionProvider(`.foo { wi| }`, [ { label: 'widows: ;', documentation: `widows: ;` } ]);   await testCompletionProvider('css', `.foo { wi| }`, undefined);  }); // https://github.com/microsoft/vscode/issues/117020 test('#117020, ! at end of abbreviation should have completion', async () => {  await testCssCompletionProvider(`.foo { bdbn!| }`, [   await testCompletionProvider('css', `.foo { bdbn!| }`, [  { label: 'border-bottom: none !important;', documentation: `border-bottom: none !important;` } ]); });  // https://github.com/microsoft/vscode/issues/138461 test('#138461, JSX array noise', async () => { await testCompletionProvider('jsx', 'a[i]', undefined); await testCompletionProvider('jsx', 'Component[a b]', undefined); await testCompletionProvider('jsx', '[a, b]', undefined); await testCompletionProvider('jsx', '[a=b]', [ { label: '

', documentation: '
|
' } ]); });  }); interface TestCompletionItem {


Question:
<!-- 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 (disabling Emmet) <!-- 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.62.3 OS Version: - Ubuntu 21.10 Steps to Reproduce: a .js file which is denoted a React file by VSCode part of the coding implement state for a counter with the following simple line: getting as far as typing I wish to just exit the square brackets however Emmet takes the first position tab results in an HTML string appearing, see pictures Question: How do I move Emmet down the list of suggestions in Autocomplete for a React file, I am using other extensions like TabOut (to get out of the square brackets without any autocomplete) which would be more appropriate. ! ! ! !
This issue heavily affect the react users.
Verification steps: a JSX file. . should not be an Emmet suggestion.
/verified

documentation?: string; } <del> function testHtmlCompletionProvider(contents: string, expectedItems: TestCompletionItem[]): Thenable<any> { </del> <ins> function testCompletionProvider(fileExtension: string, contents: string, expectedItems: TestCompletionItem[] | undefined): Thenable<boolean> { </ins> const cursorPos = contents.indexOf('|'); <del> const htmlContents = contents.slice(0, cursorPos) + contents.slice(cursorPos + 1); </del> <ins> const slicedContents = contents.slice(0, cursorPos) + contents.slice(cursorPos + 1); </ins> <del> return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => { </del> <ins> return withRandomFileEditor(slicedContents, fileExtension, async (editor, _doc) => { </ins> const selection = new Selection(editor.document.positionAt(cursorPos), editor.document.positionAt(cursorPos)); editor.selection = selection; const cancelSrc = new CancellationTokenSource();


Question:
<!-- 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 (disabling Emmet) <!-- 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.62.3 OS Version: - Ubuntu 21.10 Steps to Reproduce: a .js file which is denoted a React file by VSCode part of the coding implement state for a counter with the following simple line: getting as far as typing I wish to just exit the square brackets however Emmet takes the first position tab results in an HTML string appearing, see pictures Question: How do I move Emmet down the list of suggestions in Autocomplete for a React file, I am using other extensions like TabOut (to get out of the square brackets without any autocomplete) which would be more appropriate. ! ! ! !
This issue heavily affect the react users.
Verification steps: a JSX file. . should not be an Emmet suggestion.
/verified

const completionList = await completionPromise; if (!completionList || !completionList.items || !completionList.items.length) { <del> return Promise.resolve(); } expectedItems.forEach(eItem => { const matches = completionList.items.filter(i => i.label === eItem.label); const match = matches && matches.length > 0 ? matches[0] : undefined; assert.ok(match, `Didn't find completion item with label ${eItem.label}`); if (match) { assert.strictEqual(match.detail, 'Emmet Abbreviation', `Match needs to come from Emmet`); if (eItem.documentation) { assert.strictEqual(match.documentation, eItem.documentation, `Emmet completion Documentation doesn't match`); } </del> <ins> if (completionList === undefined) { assert.strictEqual(expectedItems, completionList); </ins> } <del> }); return Promise.resolve(); }); } function testCssCompletionProvider(contents: string, expectedItems: TestCompletionItem[]): Thenable<any> { const cursorPos = contents.indexOf('|'); const cssContents = contents.slice(0, cursorPos) + contents.slice(cursorPos + 1); return withRandomFileEditor(cssContents, 'css', async (editor, _doc) => { const selection = new Selection(editor.document.positionAt(cursorPos), editor.document.positionAt(cursorPos)); editor.selection = selection; const cancelSrc = new CancellationTokenSource(); const completionPromise = completionProvider.provideCompletionItems( editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke, triggerCharacter: undefined } ); if (!completionPromise) { return Promise.resolve(); } const completionList = await completionPromise; if (!completionList || !completionList.items || !completionList.items.length) { </del> return Promise.resolve(); } <del> expectedItems.forEach(eItem => { </del> <ins> assert.strictEqual(expectedItems === undefined, false); expectedItems!.forEach(eItem => { </ins> const matches = completionList.items.filter(i => i.label === eItem.label); const match = matches && matches.length > 0 ? matches[0] : undefined; assert.ok(match, `Didn't find completion item with label ${eItem.label}`);


*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <ins> import { VSBuffer } from 'vs/base/common/buffer'; </ins> import { MarshalledObject } from 'vs/base/common/marshalling'; import { MarshalledId } from 'vs/base/common/marshallingIds'; import { URI, UriComponents } from 'vs/base/common/uri';


return revive ? URI.revive(transformer.transformIncoming(obj)) : transformer.transformIncoming(obj); } <ins> if (obj instanceof VSBuffer) { return null; } </ins> // walk object (or array) for (const key in obj) { if (Object.hasOwnProperty.call(obj, key)) {


Question:
Tracks shipping the TypeScript recovery build: 4.5.3:
Version: 1.63.0 Commit: Date: 2021-12-07T05:15:48.091Z Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 19.6.0 !
typescript log: !
this problem appeared after the last update, until friday everything was working fine
is there any temporary solution until fix will be shipped?
this problem to be related to libraries in my work, temporary solution until fix, is locked echarts version to
did someone was able to work around it? it is not working with the latest typescript as well... should we downgrade our vscode version?
Downgrading to 1.62 fixed it for me. You can get it from: Also disable automatic updates before downgrading, otherwise it will push you back to the faulty release.
Closing for verification.
thanks
I had the same issue. Thanks for the fix. :)
THANK YOU SO MUCH, this intellisense drive me crazy since last Friday!
Just tried 1.63.2 and it's still failing with the same message. I submitted a new issue with the stack trace. Contact me if you want more info Version: 1.63.2 Commit: Date: 2021-12-15T09:37:28.172Z Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 20.5.0 TypeError: Cannot read property 'flags' of undefined at getPropertyOfObjectType (/Applications/Visual Studio ) at getPropertyOfType (/Applications/Visual Studio ) at resolveESModuleSymbol (/Applications/Visual Studio ) at getTargetOfNamespaceImport (/Applications/Visual Studio ) at getTargetOfAliasDeclaration (/Applications/Visual Studio ) at resolveAlias (/Applications/Visual Studio ) at getSymbol (/Applications/Visual Studio ) at resolveNameHelper (/Applications/Visual Studio ) at resolveName (/Applications/Visual Studio ) at resolveEntityName (/Applications/Visual Studio ) at resolveEntityName (/Applications/Visual Studio ) at getSymbolOfPartOfRightHandSideOfImportEquals (/Applications/Visual Studio ) at getTargetOfImportEqualsDeclaration (/Applications/Visual Studio ) at getTargetOfAliasDeclaration (/Applications/Visual Studio ) at resolveAlias (/Applications/Visual Studio ) at resolveSymbol (/Applications/Visual Studio ) at mergeSymbol (/Applications/Visual Studio ) at /Applications/Visual Studio at Map.forEach (<anonymous) at mergeSymbolTable (/Applications/Visual Studio ) at mergeSymbol (/Applications/Visual Studio ) at /Applications/Visual Studio at Map.forEach (<anonymous) at mergeSymbolTable (/Applications/Visual Studio ) at mergeModuleAugmentation (/Applications/Visual Studio ) at initializeTypeChecker (/Applications/Visual Studio ) at Object.createTypeChecker (/Applications/Visual Studio ) at Object.getTypeChecker (/Applications/Visual Studio ) at synchronizeHostData (/Applications/Visual Studio ) at Object.getProgram (/Applications/Visual Studio ) at ConfiguredProject.Project.updateGraphWorker (/Applications/Visual Studio ) at ConfiguredProject.Project.updateGraph (/Applications/Visual Studio ) at ConfiguredProject.updateGraph (/Applications/Visual Studio ) at ProjectService.createLoadAndUpdateConfiguredProject (/Applications/Visual Studio ) at ProjectService.assignProjectToOpenedScriptInfo (/Applications/Visual Studio ) at /Applications/Visual Studio at Object.flatMap (/Applications/Visual Studio ) at ProjectService.applyChangesInOpenFiles (/Applications/Visual Studio ) at <computed(/Applications/Visual Studio ) at /Applications/Visual Studio at IOSession.Session.executeWithRequestId (/Applications/Visual Studio ) at IOSession.Session.executeCommand (/Applications/Visual Studio ) at IOSession.Session.onMessage (/Applications/Visual Studio ) at Interface.<anonymous(/Applications/Visual Studio ) at () at Interface.onLine () at Interface.normalWrite () at () at () at addChunk () at readableAddChunk () at () at Pipe.onStreamRead ()
I'm seeing the same thing on as well. Downgrading to worked for me as well. Version: 1.63.2 Commit: Date: 2021-12-15T09:37:28.172Z Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 20.6.0 <details</summary[2021-12-21 15:25:54.627] [exthost] [info] Extension host with pid started [2021-12-21 15:25:54.627] [exthost] [info] Skipping acquiring lock for Support/Code/User/workspaceStorage/. [2021-12-21 15:25:54.742] [exthost] [info] ExtensionService#doActivateExtension vscode.microsoft-authentication, startup: false, activationEvent: 'onAuthenticationRequest:microsoft' [2021-12-21 15:25:54.751] [exthost] [info] ExtensionService#doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.754] [exthost] [info] ExtensionService#doActivateExtension vscode.extension-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.759] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.775] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.782] [exthost] [info] ExtensionService#doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:typescript' [2021-12-21 15:25:54.795] [exthost] [info] ExtensionService#doActivateExtension VisualStudioExptTeam.vscodeintellicode, startup: false, activationEvent: 'onLanguage:typescript' [2021-12-21 15:25:54.829] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:54.847] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '', root cause: [2021-12-21 15:25:54.849] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:54.897] [exthost] [info] ExtensionService#doActivateExtension ms-vscode-, startup: true, activationEvent: '' [2021-12-21 15:25:55.232] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:55.246] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:55.479] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onAuthenticationRequest:github' [2021-12-21 15:25:55.548] [exthost] [info] Eager extensions activated [2021-12-21 15:25:56.091] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:25:56.096] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:25:56.098] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:25:56.108] [exthost] [info] ExtensionService#doActivateExtension eamodio.gitlens, startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:52.346] [exthost] [info] extension host terminating: renderer closed the socket [2021-12-21 15:53:52.367] [exthost] [info] Extension host with pid exiting with code 0 [2021-12-21 15:53:55.138] [exthost] [info] Extension host with pid started [2021-12-21 15:53:55.138] [exthost] [info] Skipping acquiring lock for Support/Code/User/workspaceStorage/. [2021-12-21 15:53:55.198] [exthost] [info] ExtensionService#doActivateExtension vscode.microsoft-authentication, startup: false, activationEvent: 'onAuthenticationRequest:microsoft' [2021-12-21 15:53:55.204] [exthost] [info] ExtensionService#doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.209] [exthost] [info] ExtensionService#doActivateExtension vscode.extension-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.214] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.229] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.236] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.238] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '', root cause: [2021-12-21 15:53:55.241] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.287] [exthost] [info] ExtensionService#doActivateExtension ms-vscode-, startup: true, activationEvent: '' [2021-12-21 15:53:55.334] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.352] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.431] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onAuthenticationRequest:github' [2021-12-21 15:53:55.598] [exthost] [info] Eager extensions activated [2021-12-21 15:53:55.601] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.607] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.608] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.615] [exthost] [info] ExtensionService#doActivateExtension eamodio.gitlens, startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.958] [exthost] [info] ExtensionService#doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:jsonc' [2021-12-21 15:53:56.730] [exthost] [info] ExtensionService#doActivateExtension VisualStudioExptTeam.vscodeintellicode, startup: false, activationEvent: 'onLanguage:typescript' [2021-12-21 15:58:22.661] [exthost] [error] [vscode.typescript-language-features] provider FAILED [2021-12-21 15:58:22.662] [exthost] [error] Error: Could not create TS service. Service state:{"type":0} at w.service (/Applications/Visual Studio ) at w.executeImpl (/Applications/Visual Studio ) at w.execute (/Applications/Visual Studio ) at u.ensureConfigurationOptions (/Applications/Visual Studio ) at u.ensureConfigurationForDocument (/Applications/Visual Studio ) at /Applications/Visual Studio at b.interruptGetErr (/Applications/Visual Studio ) at w.interruptGetErr (/Applications/Visual Studio ) at l.provideHover (/Applications/Visual Studio ) at o.provideHover (/Applications/Visual Studio ) at /Applications/Visual Studio at We.withAdapter (/Applications/Visual Studio ) at We.$provideHover (/Applications/Visual Studio ) at t.doInvokeHandler (/Applications/Visual Studio ) at t.invokeHandler (/Applications/Visual Studio ) at t.receiveRequest (/Applications/Visual Studio ) at t.receiveOneMessage (/Applications/Visual Studio ) at /Applications/Visual Studio at u.fire (/Applications/Visual Studio ) at r.fire (/Applications/Visual Studio ) at /Applications/Visual Studio at u.fire (/Applications/Visual Studio ) at r.fire (/Applications/Visual Studio ) at n.receiveMessage (/Applications/Visual Studio ) at /Applications/Visual Studio at u.fire (/Applications/Visual Studio ) at w.acceptChunk (/Applications/Visual Studio ) at /Applications/Visual Studio at Socket.T (/Applications/Visual Studio ) at () at addChunk () at readableAddChunk () at () at Pipe.onStreamRead () [2021-12-21 16:03:34.858] [exthost] [warning] TextEditor is closed/disposed </details
Same here for 1.63.2, downgraded until this is solved....
having the same issue here, how do you guys downgrade?
Same happened to me. Had to downgrade to 1.62 (October 2021 update) for it to work.
why is this issue closed? this is still not resolved...
For me, this can be fixed by in Version: 1.63.2 (Universal) Commit: Date: 2021-12-15T09:37:28.172Z (3 wks ago) Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin arm64 21.2.0
I was running node 12. Upgrading node versions also fixes this bug. Edit: Spoke too soon. I saw tool tip working for some locally defined types and thought it was working. It still can't resolve types outside the local file and pops up the crash warning after 5 minutes.
it works for 2 minutes every time i reopen vs code until it crashes again. can u provide what version of ts u have installed in your projects? because for me this solution didn't help. i also downgraded the vs code version and it work for like half an hour and then again the same error
Sure. I hope this can be helpful for you.
I think this is being fixed by While waiting for new vscode to have new typescript, installing ms- seems to help. (Got the hint on ).

"license": "MIT", "description": "Dependencies shared by all extensions", "dependencies": { <del> "typescript": "4.5" </del> <ins> "typescript": "4.5.4" </ins> }, "scripts": { "postinstall": "node ./postinstall"


Question:
Tracks shipping the TypeScript recovery build: 4.5.3:
Version: 1.63.0 Commit: Date: 2021-12-07T05:15:48.091Z Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 19.6.0 !
typescript log: !
this problem appeared after the last update, until friday everything was working fine
is there any temporary solution until fix will be shipped?
this problem to be related to libraries in my work, temporary solution until fix, is locked echarts version to
did someone was able to work around it? it is not working with the latest typescript as well... should we downgrade our vscode version?
Downgrading to 1.62 fixed it for me. You can get it from: Also disable automatic updates before downgrading, otherwise it will push you back to the faulty release.
Closing for verification.
thanks
I had the same issue. Thanks for the fix. :)
THANK YOU SO MUCH, this intellisense drive me crazy since last Friday!
Just tried 1.63.2 and it's still failing with the same message. I submitted a new issue with the stack trace. Contact me if you want more info Version: 1.63.2 Commit: Date: 2021-12-15T09:37:28.172Z Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 20.5.0 TypeError: Cannot read property 'flags' of undefined at getPropertyOfObjectType (/Applications/Visual Studio ) at getPropertyOfType (/Applications/Visual Studio ) at resolveESModuleSymbol (/Applications/Visual Studio ) at getTargetOfNamespaceImport (/Applications/Visual Studio ) at getTargetOfAliasDeclaration (/Applications/Visual Studio ) at resolveAlias (/Applications/Visual Studio ) at getSymbol (/Applications/Visual Studio ) at resolveNameHelper (/Applications/Visual Studio ) at resolveName (/Applications/Visual Studio ) at resolveEntityName (/Applications/Visual Studio ) at resolveEntityName (/Applications/Visual Studio ) at getSymbolOfPartOfRightHandSideOfImportEquals (/Applications/Visual Studio ) at getTargetOfImportEqualsDeclaration (/Applications/Visual Studio ) at getTargetOfAliasDeclaration (/Applications/Visual Studio ) at resolveAlias (/Applications/Visual Studio ) at resolveSymbol (/Applications/Visual Studio ) at mergeSymbol (/Applications/Visual Studio ) at /Applications/Visual Studio at Map.forEach (<anonymous) at mergeSymbolTable (/Applications/Visual Studio ) at mergeSymbol (/Applications/Visual Studio ) at /Applications/Visual Studio at Map.forEach (<anonymous) at mergeSymbolTable (/Applications/Visual Studio ) at mergeModuleAugmentation (/Applications/Visual Studio ) at initializeTypeChecker (/Applications/Visual Studio ) at Object.createTypeChecker (/Applications/Visual Studio ) at Object.getTypeChecker (/Applications/Visual Studio ) at synchronizeHostData (/Applications/Visual Studio ) at Object.getProgram (/Applications/Visual Studio ) at ConfiguredProject.Project.updateGraphWorker (/Applications/Visual Studio ) at ConfiguredProject.Project.updateGraph (/Applications/Visual Studio ) at ConfiguredProject.updateGraph (/Applications/Visual Studio ) at ProjectService.createLoadAndUpdateConfiguredProject (/Applications/Visual Studio ) at ProjectService.assignProjectToOpenedScriptInfo (/Applications/Visual Studio ) at /Applications/Visual Studio at Object.flatMap (/Applications/Visual Studio ) at ProjectService.applyChangesInOpenFiles (/Applications/Visual Studio ) at <computed(/Applications/Visual Studio ) at /Applications/Visual Studio at IOSession.Session.executeWithRequestId (/Applications/Visual Studio ) at IOSession.Session.executeCommand (/Applications/Visual Studio ) at IOSession.Session.onMessage (/Applications/Visual Studio ) at Interface.<anonymous(/Applications/Visual Studio ) at () at Interface.onLine () at Interface.normalWrite () at () at () at addChunk () at readableAddChunk () at () at Pipe.onStreamRead ()
I'm seeing the same thing on as well. Downgrading to worked for me as well. Version: 1.63.2 Commit: Date: 2021-12-15T09:37:28.172Z Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 20.6.0 <details</summary[2021-12-21 15:25:54.627] [exthost] [info] Extension host with pid started [2021-12-21 15:25:54.627] [exthost] [info] Skipping acquiring lock for Support/Code/User/workspaceStorage/. [2021-12-21 15:25:54.742] [exthost] [info] ExtensionService#doActivateExtension vscode.microsoft-authentication, startup: false, activationEvent: 'onAuthenticationRequest:microsoft' [2021-12-21 15:25:54.751] [exthost] [info] ExtensionService#doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.754] [exthost] [info] ExtensionService#doActivateExtension vscode.extension-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.759] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.775] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:25:54.782] [exthost] [info] ExtensionService#doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:typescript' [2021-12-21 15:25:54.795] [exthost] [info] ExtensionService#doActivateExtension VisualStudioExptTeam.vscodeintellicode, startup: false, activationEvent: 'onLanguage:typescript' [2021-12-21 15:25:54.829] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:54.847] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '', root cause: [2021-12-21 15:25:54.849] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:54.897] [exthost] [info] ExtensionService#doActivateExtension ms-vscode-, startup: true, activationEvent: '' [2021-12-21 15:25:55.232] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:55.246] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:25:55.479] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onAuthenticationRequest:github' [2021-12-21 15:25:55.548] [exthost] [info] Eager extensions activated [2021-12-21 15:25:56.091] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:25:56.096] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:25:56.098] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:25:56.108] [exthost] [info] ExtensionService#doActivateExtension eamodio.gitlens, startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:52.346] [exthost] [info] extension host terminating: renderer closed the socket [2021-12-21 15:53:52.367] [exthost] [info] Extension host with pid exiting with code 0 [2021-12-21 15:53:55.138] [exthost] [info] Extension host with pid started [2021-12-21 15:53:55.138] [exthost] [info] Skipping acquiring lock for Support/Code/User/workspaceStorage/. [2021-12-21 15:53:55.198] [exthost] [info] ExtensionService#doActivateExtension vscode.microsoft-authentication, startup: false, activationEvent: 'onAuthenticationRequest:microsoft' [2021-12-21 15:53:55.204] [exthost] [info] ExtensionService#doActivateExtension vscode.configuration-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.209] [exthost] [info] ExtensionService#doActivateExtension vscode.extension-editing, startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.214] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.229] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onLanguage:json' [2021-12-21 15:53:55.236] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.238] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '', root cause: [2021-12-21 15:53:55.241] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.287] [exthost] [info] ExtensionService#doActivateExtension ms-vscode-, startup: true, activationEvent: '' [2021-12-21 15:53:55.334] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.352] [exthost] [info] ExtensionService#doActivateExtension , startup: true, activationEvent: '' [2021-12-21 15:53:55.431] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onAuthenticationRequest:github' [2021-12-21 15:53:55.598] [exthost] [info] Eager extensions activated [2021-12-21 15:53:55.601] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.607] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.608] [exthost] [info] ExtensionService#doActivateExtension , startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.615] [exthost] [info] ExtensionService#doActivateExtension eamodio.gitlens, startup: false, activationEvent: 'onStartupFinished' [2021-12-21 15:53:55.958] [exthost] [info] ExtensionService#doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:jsonc' [2021-12-21 15:53:56.730] [exthost] [info] ExtensionService#doActivateExtension VisualStudioExptTeam.vscodeintellicode, startup: false, activationEvent: 'onLanguage:typescript' [2021-12-21 15:58:22.661] [exthost] [error] [vscode.typescript-language-features] provider FAILED [2021-12-21 15:58:22.662] [exthost] [error] Error: Could not create TS service. Service state:{"type":0} at w.service (/Applications/Visual Studio ) at w.executeImpl (/Applications/Visual Studio ) at w.execute (/Applications/Visual Studio ) at u.ensureConfigurationOptions (/Applications/Visual Studio ) at u.ensureConfigurationForDocument (/Applications/Visual Studio ) at /Applications/Visual Studio at b.interruptGetErr (/Applications/Visual Studio ) at w.interruptGetErr (/Applications/Visual Studio ) at l.provideHover (/Applications/Visual Studio ) at o.provideHover (/Applications/Visual Studio ) at /Applications/Visual Studio at We.withAdapter (/Applications/Visual Studio ) at We.$provideHover (/Applications/Visual Studio ) at t.doInvokeHandler (/Applications/Visual Studio ) at t.invokeHandler (/Applications/Visual Studio ) at t.receiveRequest (/Applications/Visual Studio ) at t.receiveOneMessage (/Applications/Visual Studio ) at /Applications/Visual Studio at u.fire (/Applications/Visual Studio ) at r.fire (/Applications/Visual Studio ) at /Applications/Visual Studio at u.fire (/Applications/Visual Studio ) at r.fire (/Applications/Visual Studio ) at n.receiveMessage (/Applications/Visual Studio ) at /Applications/Visual Studio at u.fire (/Applications/Visual Studio ) at w.acceptChunk (/Applications/Visual Studio ) at /Applications/Visual Studio at Socket.T (/Applications/Visual Studio ) at () at addChunk () at readableAddChunk () at () at Pipe.onStreamRead () [2021-12-21 16:03:34.858] [exthost] [warning] TextEditor is closed/disposed </details
Same here for 1.63.2, downgraded until this is solved....
having the same issue here, how do you guys downgrade?
Same happened to me. Had to downgrade to 1.62 (October 2021 update) for it to work.
why is this issue closed? this is still not resolved...
For me, this can be fixed by in Version: 1.63.2 (Universal) Commit: Date: 2021-12-15T09:37:28.172Z (3 wks ago) Electron: 13.5.2 Chromium: 91.0.4472.164 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin arm64 21.2.0
I was running node 12. Upgrading node versions also fixes this bug. Edit: Spoke too soon. I saw tool tip working for some locally defined types and thought it was working. It still can't resolve types outside the local file and pops up the crash warning after 5 minutes.
it works for 2 minutes every time i reopen vs code until it crashes again. can u provide what version of ts u have installed in your projects? because for me this solution didn't help. i also downgraded the vs code version and it work for like half an hour and then again the same error
Sure. I hope this can be helpful for you.
I think this is being fixed by While waiting for new vscode to have new typescript, installing ms- seems to help. (Got the hint on ).

resolved "https://registry.yarnpkg.com/fast-plist/-/fast-plist-0.1.2.tgz#a45aff345196006d406ca6cdcd05f69051ef35b8" integrity sha1-pFr/NFGWAG1AbKbNzQX2kFHvNbg= <del> typescript@4.5: version "4.5.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== </del> <ins> typescript@4.5.3: version "4.5.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.3.tgz#afaa858e68c7103317d89eb90c5d8906268d353c" integrity sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ== </ins> vscode-grammar-updater@^1.0.3: version "1.0.3"


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

private readonly _hoverOperation: HoverOperation<IHoverPart>; private _currentResult: HoverResult | null = null; <del> private _isChangingDecorations: boolean = false; </del> constructor( private readonly _editor: ICodeEditor,


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

const messages = (result.hasLoadingMessage ? this._addLoadingMessage(result.value) : result.value); this._withResult(new HoverResult(this._computer.anchor, messages, result.isComplete)); })); <del> this._register(this._editor.onDidChangeModelDecorations(() => { if (this._isChangingDecorations) { return; } this._onModelDecorationsChanged(); })); </del> this._register(dom.addStandardDisposableListener(this._widget.getDomNode(), 'keydown', (e) => { if (e.equals(KeyCode.Escape)) { this.hide();


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

})); } <del> private _onModelDecorationsChanged(): void { if (this._widget.position) { // The decorations have changed and the hover is visible, // we need to recompute the displayed text this._hoverOperation.cancel(); if (!this._widget.isColorPickerVisible) { // TODO@Michel ensure that displayed text for other decorations is computed even if color picker is in place this._hoverOperation.start(HoverStartMode.Delayed); } } } </del> /** * Returns true if the hover shows now or will show. */


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

} private _setCurrentResult(hoverResult: HoverResult | null): void { <ins> if (this._currentResult === hoverResult) { // avoid updating the DOM to avoid resetting the user selection return; } </ins> if (hoverResult && hoverResult.messages.length === 0) { hoverResult = null; }


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

if (fragment.hasChildNodes()) { if (highlightRange) { const highlightDecoration = this._editor.createDecorationsCollection(); <del> try { this._isChangingDecorations = true; highlightDecoration.set([{ range: highlightRange, options: ContentHoverController._DECORATION_OPTIONS }]); } finally { this._isChangingDecorations = false; } </del> <ins> highlightDecoration.set([{ range: highlightRange, options: ContentHoverController._DECORATION_OPTIONS }]); </ins> disposables.add(toDisposable(() => { <del> try { this._isChangingDecorations = true; highlightDecoration.clear(); } finally { this._isChangingDecorations = false; } </del> <ins> highlightDecoration.clear(); </ins> })); }


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

public readonly isComplete: boolean ) { } <del> public filter(anchor: HoverAnchor): HoverResult | null { </del> <ins> public filter(anchor: HoverAnchor): HoverResult { </ins> const filteredMessages = this.messages.filter((m) => m.isValidForHoverAnchor(anchor)); <ins> if (filteredMessages.length === this.messages.length) { return this; } </ins> return new FilteredHoverResult(this, this.anchor, filteredMessages, this.isComplete); } }


Question:
I was trying to copying a new setting in the problems hover and it was extremely painful to do so: https://user-
This is editor hover and hence assigning to
FWIW this works fine for me on Windows.

super(anchor, messages, isComplete); } <del> public override filter(anchor: HoverAnchor): HoverResult | null { </del> <ins> public override filter(anchor: HoverAnchor): HoverResult { </ins> return this.original.filter(anchor); } }


Question:
Issue Type: <bBug</bI wanted to be able to copy the call stack through a keyboard shortcut so I created a binding for but found that it doesn't do anything. I tried different combinations of clauses and ensured that my keystroke was not being captured by something else but still no luck. Invoking the command directly in my extension like so also did not work and the thenable resolved to . The comment and post imply this should work outside of the callstack context so I've filed this as a bug as opposed to a feature request for a keyboard shortcut to copy the call stack. VS Code version: Code 1.63.2 (Universal) (, 2021-12-15T09:37:28.172Z) OS version: Darwin x64 21.2.0 Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ vscode-bazel0.5.0 arm1.5.2 vscode-diff1.4.2 fig0.10.1 misc-additions1.0.2 lldb-vscode0.1.0 jupyter2021.11. remote-ssh0.68.0 remote-ssh-edit0.68.0 vscode-remote-extensionpack0.21.0 cpptools1.7.1 errorlens3.4.1 vim1.21.10 clang-format1.9.0 material-theme3.13.6 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
The comment in code applies to the commands in general but that particular command can't be called globally currently. It copies a callstack from one thread and there can be multiple callstacks available so one has to selected to copy. Do you want the keybinding to work on the focused thread, or does that not help?
Yes, defaulting to the focused thread was my expectation.

return thread.getCallStack().find(sf => sf.getId() === context.frameId); } } <ins> } else { return debugService.getViewModel().focusedStackFrame; </ins> } return undefined;


Question:
Issue Type: <bBug</bI wanted to be able to copy the call stack through a keyboard shortcut so I created a binding for but found that it doesn't do anything. I tried different combinations of clauses and ensured that my keystroke was not being captured by something else but still no luck. Invoking the command directly in my extension like so also did not work and the thenable resolved to . The comment and post imply this should work outside of the callstack context so I've filed this as a bug as opposed to a feature request for a keyboard shortcut to copy the call stack. VS Code version: Code 1.63.2 (Universal) (, 2021-12-15T09:37:28.172Z) OS version: Darwin x64 21.2.0 Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ vscode-bazel0.5.0 arm1.5.2 vscode-diff1.4.2 fig0.10.1 misc-additions1.0.2 lldb-vscode0.1.0 jupyter2021.11. remote-ssh0.68.0 remote-ssh-edit0.68.0 vscode-remote-extensionpack0.21.0 cpptools1.7.1 errorlens3.4.1 vim1.21.10 clang-format1.9.0 material-theme3.13.6 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
The comment in code applies to the commands in general but that particular command can't be called globally currently. It copies a callstack from one thread and there can be multiple callstacks available so one has to selected to copy. Do you want the keybinding to work on the focused thread, or does that not help?
Yes, defaulting to the focused thread was my expectation.

handler: async (accessor: ServicesAccessor, _: string, context: CallStackContext | unknown) => { const textResourcePropertiesService = accessor.get(ITextResourcePropertiesService); const clipboardService = accessor.get(IClipboardService); <del> const frame = getFrame(accessor.get(IDebugService), context); </del> <ins> const debugService = accessor.get(IDebugService); const frame = getFrame(debugService, context); </ins> if (frame) { const eol = textResourcePropertiesService.getEOL(frame.source.uri); await clipboardService.writeText(frame.thread.getCallStack().map(sf => sf.toString()).join(eol));


Question: We should not sync this Should this be per terminal instance? No We should persist similar to recent commands as well Should persisted entries work across different shells? Probably We should invalidate entries similar to commands Let's support removing entries, using a icon that shows only on active and hovered item Let's not use the x for failed, we can improve visualizing errors later on

import { ITerminalCommand, TerminalCapability } from 'vs/workbench/contrib/terminal/common/capabilities/capabilities'; import { TerminalCapabilityStoreMultiplexer } from 'vs/workbench/contrib/terminal/common/capabilities/terminalCapabilityStore'; import { IEnvironmentVariableInfo } from 'vs/workbench/contrib/terminal/common/environmentVariable'; <del> import { getCommandHistory } from 'vs/workbench/contrib/terminal/common/history'; </del> <ins> import { getCommandHistory, getDirectoryHistory } from 'vs/workbench/contrib/terminal/common/history'; </ins> import { DEFAULT_COMMANDS_TO_SKIP_SHELL, INavigationMode, ITerminalBackend, ITerminalProcessManager, ITerminalProfileResolverService, ProcessState, ShellIntegrationExitCode, TerminalCommandId, TERMINAL_CREATION_COMMANDS, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; import { formatMessageForTerminal } from 'vs/workbench/contrib/terminal/common/terminalStrings';


Question: We should not sync this Should this be per terminal instance? No We should persist similar to recent commands as well Should persisted entries work across different shells? Probably We should invalidate entries similar to commands Let's support removing entries, using a icon that shows only on active and hovered item Let's not use the x for failed, we can improve visualizing errors later on

this._cwd = e; this._xtermOnKey?.dispose(); this.refreshTabLabels(this.title, TitleEventSource.Config); <ins> this._instantiationService.invokeFunction(getDirectoryHistory)?.add(e, null); </ins> }); } else if (e === TerminalCapability.CommandDetection) { this.capabilities.get(TerminalCapability.CommandDetection)?.onCommandFinished(e => {


Question: We should not sync this Should this be per terminal instance? No We should persist similar to recent commands as well Should persisted entries work across different shells? Probably We should invalidate entries similar to commands Let's support removing entries, using a icon that shows only on active and hovered item Let's not use the x for failed, we can improve visualizing errors later on

for (const label of cwds) { items.push({ label }); } items = items.reverse(); <ins> // Gather previous session history const history = this._instantiationService.invokeFunction(getDirectoryHistory); const previousSessionItems: IQuickPickItem[] = []; // Only add previous session item if it's not in this session for (const [label] of history.entries) { if (!cwds.includes(label)) { previousSessionItems.push({ label, buttons: [removeFromCommandHistoryButton] }); } } if (previousSessionItems.length > 0) { items.push( { type: 'separator', label: 'previous sessions' }, ...previousSessionItems ); } </ins> } if (items.length === 0) { return;


Question: We should not sync this Should this be per terminal instance? No We should persist similar to recent commands as well Should persisted entries work across different shells? Probably We should invalidate entries similar to commands Let's support removing entries, using a icon that shows only on active and hovered item Let's not use the x for failed, we can improve visualizing errors later on

return new Promise<void>(r => { quickPick.onDidTriggerItemButton(async e => { if (e.button === removeFromCommandHistoryButton) { <del> this._instantiationService.invokeFunction(getCommandHistory)?.remove(e.item.label); } const selectedCommand = (e.item as Item).command; const output = selectedCommand?.getOutput(); if (output && selectedCommand?.command) { const textContent = await outputProvider.provideTextContent(URI.from( { scheme: TerminalOutputProvider.scheme, path: `${selectedCommand.command}... ${fromNow(selectedCommand.timestamp, true)}`, fragment: output, query: `terminal-output-${selectedCommand.timestamp}-${this.instanceId}` })); if (textContent) { await this._editorService.openEditor({ resource: textContent.uri }); </del> <ins> if (type === 'command') { this._instantiationService.invokeFunction(getCommandHistory)?.remove(e.item.label); } else { this._instantiationService.invokeFunction(getDirectoryHistory)?.remove(e.item.label); } } else { const selectedCommand = (e.item as Item).command; const output = selectedCommand?.getOutput(); if (output && selectedCommand?.command) { const textContent = await outputProvider.provideTextContent(URI.from( { scheme: TerminalOutputProvider.scheme, path: `${selectedCommand.command}... ${fromNow(selectedCommand.timestamp, true)}`, fragment: output, query: `terminal-output-${selectedCommand.timestamp}-${this.instanceId}` })); if (textContent) { await this._editorService.openEditor({ resource: textContent.uri }); } </ins> } } quickPick.hide();


Question: We should not sync this Should this be per terminal instance? No We should persist similar to recent commands as well Should persisted entries work across different shells? Probably We should invalidate entries similar to commands Let's support removing entries, using a icon that shows only on active and hovered item Let's not use the x for failed, we can improve visualizing errors later on

return commandHistory; } <ins> let directoryHistory: ITerminalPersistedHistory<null> | undefined = undefined; export function getDirectoryHistory(accessor: ServicesAccessor): ITerminalPersistedHistory<null> { if (!directoryHistory) { directoryHistory = accessor.get(IInstantiationService).createInstance(TerminalPersistedHistory, 'dirs') as TerminalPersistedHistory<null>; } return directoryHistory; } </ins> export class TerminalPersistedHistory<T> extends Disposable implements ITerminalPersistedHistory<T> { private readonly _entries: LRUCache<string, T>; private _timestamp: number = 0;


Question:
Testing !
We'll need to repro on mac and look at the sequences to verify whether this is an issue or we're going the right thing.
I think this is working as designed since it's just padding on the top, however we could check the location of the terminal view and if it's on either side, top align the terminal instead of bottom aligning it.

.monaco-workbench .pane-body.integrated-terminal .xterm { /* All terminals have at least 10px left/right edge padding and 2 padding on the bottom (so underscores on last line are visible */ padding: 0 10px 2px; <del> /* Bottom align the terminal withing the split pane */ </del> <ins> /* Bottom align the terminal within the split pane */ </ins> position: absolute; bottom: 0; left: 0; right: 0; } <ins> .terminal-side-view .terminal.xterm { /* Top align the terminal within the split pane when the panel is vertical */ top: 0; } </ins> .monaco-workbench .editor-instance .terminal-wrapper.fixed-dims .xterm, .monaco-workbench .pane-body.integrated-terminal .terminal-wrapper.fixed-dims .xterm { position: static;


Question:
Testing !
We'll need to repro on mac and look at the sequences to verify whether this is an issue or we're going the right thing.
I think this is working as designed since it's just padding on the top, however we could check the location of the terminal view and if it's on either side, top align the terminal instead of bottom aligning it.

const $ = dom.$; <del> const FIND_FOCUS_CLASS = 'find-focused'; const STATUS_ICON_WIDTH = 30; const SPLIT_ANNOTATION_WIDTH = 30; </del> <ins> const enum CssClass { ViewIsVertical = 'terminal-side-view', FindFocus = 'find-focused' } const enum WidthConstants { StatusIcon = 30, SplitAnnotation = 30 } </ins> export class TerminalTabbedView extends Disposable {


Question:
Testing !
We'll need to repro on mac and look at the sequences to verify whether this is an issue or we're going the right thing.
I think this is working as designed since it's just padding on the top, however we could check the location of the terminal view and if it's on either side, top align the terminal instead of bottom aligning it.

this._register(this._themeService.onDidColorThemeChange(theme => this._updateTheme(theme))); this._updateTheme(); <del> this._findWidget.focusTracker.onDidFocus(() => this._terminalContainer.classList.add(FIND_FOCUS_CLASS)); this._findWidget.focusTracker.onDidBlur(() => this._terminalContainer.classList.remove(FIND_FOCUS_CLASS)); </del> <ins> this._findWidget.focusTracker.onDidFocus(() => this._terminalContainer.classList.add(CssClass.FindFocus)); this._findWidget.focusTracker.onDidBlur(() => this._terminalContainer.classList.remove(CssClass.FindFocus)); </ins> this._attachEventListeners(parentElement, this._terminalContainer); this._terminalGroupService.onDidChangePanelOrientation((orientation) => { this._panelOrientation = orientation; <ins> if (this._panelOrientation === Orientation.VERTICAL) { this._terminalContainer.classList.add(CssClass.ViewIsVertical); } else { this._terminalContainer.classList.remove(CssClass.ViewIsVertical); } </ins> }); this._splitView = new SplitView(parentElement, { orientation: Orientation.HORIZONTAL, proportionalLayout: false });


Question:
Testing !
We'll need to repro on mac and look at the sequences to verify whether this is an issue or we're going the right thing.
I think this is working as designed since it's just padding on the top, however we could check the location of the terminal view and if it's on either side, top align the terminal instead of bottom aligning it.

private _getAdditionalWidth(instance: ITerminalInstance): number { // Size to include padding, icon, status icon (if any), split annotation (if any), + a little more const additionalWidth = 40; <del> const statusIconWidth = instance.statusList.statuses.length > 0 ? STATUS_ICON_WIDTH : 0; const splitAnnotationWidth = (this._terminalGroupService.getGroupForInstance(instance)?.terminalInstances.length || 0) > 1 ? SPLIT_ANNOTATION_WIDTH : 0; </del> <ins> const statusIconWidth = instance.statusList.statuses.length > 0 ? WidthConstants.StatusIcon : 0; const splitAnnotationWidth = (this._terminalGroupService.getGroupForInstance(instance)?.terminalInstances.length || 0) > 1 ? WidthConstants.SplitAnnotation : 0; </ins> return additionalWidth + splitAnnotationWidth + statusIconWidth; }


Question: Testing have no terminals, no panel visible reload vs code :bug: the open detected link, open last link commands are in command palette

disposables.push(server.onServerStart(path => { <del> defaultStatus.text = '$(flame) Runnning'; </del> <ins> defaultStatus.text = '$(flame) Running'; </ins> defaultStatus.command = 'o.pickProjectAndStart'; defaultStatus.color = ''; render();


Question:
I have a profile for PowerShell using the and once I enable the the prompt is no longer loading. With it enabled I see this prompt: ! When I disable I get my expected prompt: ! My prompt function within my PowerShell profile:
this is happening because line is throwing because there is no history in a newly created session
champion , should be able to handle this early next week
i could do a pr
also, here you should use and check if the CWD is a filesystem path. like:
that would be awesome! I'm fairly new to pwsh so any comments on the rest of the script would be appreciated too
Under what cases would the file system not be available?
the provider could be something other than filesystem, like the registry, certificate or environment you can see them if you run
just tried , neat
We probably want to keep the CWD even on non-filesystem providers actually, just give it a different scheme or something in that case to let VS Code differentiate it from a regular path. That way we would still get the cwd folder showing up in the tab: !
also, is it only supposed to support powershell 7 and not win PS?
Yep, no windows powershell
does vscode also supports osc 9;9 for CWD Tracking like win term?
some discussion on the topic in , my plan is to move us over to using our own custom sequences to avoid shell integration getting confused and give us freedom to change what them as we please.
let me know if I'm missing something though, I don't think running another terminal's shell integration script is particularly useful. Instead, you would use the arg injection or set it up manually (docs aren't written yet).
I see you have the sequences we support in your profile, these would break when we action as we'd probably move to use
yeah, I will probably remove them after the chages in and get into a release
Good to hear, let us know if you hit any other problems as I have a pretty simple pwsh setup
Can confirm latest build resolves this now on Inisiders: !

#   Licensed under the MIT License. See License.txt in the project root for license information. # --------------------------------------------------------------------------------------------- <del> $Global:__VSCodeOriginalPrompt = (Get-Command Prompt).ScriptBlock </del> <ins> $Global:__VSCodeOriginalPrompt = $function:Prompt </ins> function Global:__VSCode-Get-LastExitCode { <del> if ($? -eq $True) { return "0" } </del> <ins> if ($? -eq $True) { return 0 } </ins> # TODO: Should we just return a string instead? <del> return "-1" </del> <ins> return -1 </ins> } function Global:Prompt() {


Question:
I have a profile for PowerShell using the and once I enable the the prompt is no longer loading. With it enabled I see this prompt: ! When I disable I get my expected prompt: ! My prompt function within my PowerShell profile:
this is happening because line is throwing because there is no history in a newly created session
champion , should be able to handle this early next week
i could do a pr
also, here you should use and check if the CWD is a filesystem path. like:
that would be awesome! I'm fairly new to pwsh so any comments on the rest of the script would be appreciated too
Under what cases would the file system not be available?
the provider could be something other than filesystem, like the registry, certificate or environment you can see them if you run
just tried , neat
We probably want to keep the CWD even on non-filesystem providers actually, just give it a different scheme or something in that case to let VS Code differentiate it from a regular path. That way we would still get the cwd folder showing up in the tab: !
also, is it only supposed to support powershell 7 and not win PS?
Yep, no windows powershell
does vscode also supports osc 9;9 for CWD Tracking like win term?
some discussion on the topic in , my plan is to move us over to using our own custom sequences to avoid shell integration getting confused and give us freedom to change what them as we please.
let me know if I'm missing something though, I don't think running another terminal's shell integration script is particularly useful. Instead, you would use the arg injection or set it up manually (docs aren't written yet).
I see you have the sequences we support in your profile, these would break when we action as we'd probably move to use
yeah, I will probably remove them after the chages in and get into a release
Good to hear, let us know if you hit any other problems as I have a pretty simple pwsh setup
Can confirm latest build resolves this now on Inisiders: !

# TODO: There are probably better serializable strings to use # TODO: This doesn't work for empty commands of ^C # TODO: Check ID against last to see if no command ran <del> $Result += $(Get-History -Count 1).CommandLine.Replace("`n", "<LF>").Replace(";", "<CL>") $Result += "`u{7}" </del> <ins> $CommandLine = $(Get-History -Count 1).CommandLine ?? "" $Result += $CommandLine.Replace("`n", "<LF>").Replace(";", "<CL>") $Result += "`a" </ins> # Command finished exit code # OSC 133 ; D ; <ExitCode> ST <del> $Result += "`e]133;D;$(__VSCode-Get-LastExitCode)`u{7}" </del> <ins> $Result += "`e]133;D;$(__VSCode-Get-LastExitCode)`a" </ins> # Prompt started # OSC 133 ; A ST <del> $Result += "`e]133;A`u{7}" </del> <ins> $Result += "`e]133;A`a" </ins> # Current working directory # OSC 1337 ; CurrentDir=<CurrentDir> ST <del> $Result += "`e]1337;CurrentDir=$(Get-Location)`u{7}" </del> <ins> $Result += if($pwd.Provider.Name -eq 'FileSystem'){"`e]1337;CurrentDir=$($pwd.ProviderPath)`a"} </ins> # Write original prompt <del> $Result += Invoke-Command -ScriptBlock $Global:__VSCodeOriginalPrompt </del> <ins> $Result += $Global:__VSCodeOriginalPrompt.Invoke() </ins> # Write command started <del> $Result += "`e]133;B`u{7}" return $Result </del> <ins> $Result += "`e]133;B`a" return $Result </ins> } # TODO: Gracefully fallback when PSReadLine is not loaded function Global:PSConsoleHostReadLine { <del> [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($Host.Runspace, $ExecutionContext) # Write command executed sequence directly to Console to avoid the new line from Write-Host [Console]::Write("`e]133;C`u{7}") </del> <ins> [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($Host.Runspace, $ExecutionContext) # Write command executed sequence directly to Console to avoid the new line from Write-Host [Console]::Write("`e]133;C`u{7}") </ins> } # Set IsWindows property <del> Write-Output "`e]633;P;IsWindows=$($IsWindows)`u{7}" Write-Host "`e[1mShell integration activated!" -ForegroundColor Green -NoNewline </del> <ins> [Console]::Write("`e]633;P;IsWindows=$($IsWindows)`a") Write-Host "`e[1mShell integration activated!" -ForegroundColor Green </ins>


Question:
I am doing Remote Development, and have a few Source Control Repositories. In the Source Control pane, I have all the repositories listed in the Source Control section. One of the repositories has a file that I want to discard. It is listed under "Untracked Changes", under the repository it is in. If I click the "Discard Changes" button on the line with the file, I am prompted for confirmation, as I expect. But, if I click the same button on the line above the file -- the "Discard All Untracked Changes" button on the "Untracked Changes" header line under the repository I want -- then I am first shown a "Choose a repository" dropdown that lists all the repositories. I don't understand why this choice is needed, since I clicked the "Discard All Untracked Changes" button on the Untracked Changes for a specific repository -- why must I select this repository again? If I choose the repository, I am still shown the same (or similar) confirmation dialog as I was before, so the selection does not seem to be needed for confirmation. Clicking the plus ("+") button (i.e., Stage All Untracked Changes) on the Untracked Changes line seems to have the same issue.
Thank you!

return liveRepository; } <del> if (hint === repository.mergeGroup || hint === repository.indexGroup || hint === repository.workingTreeGroup) { </del> <ins> if (hint === repository.mergeGroup || hint === repository.indexGroup || hint === repository.workingTreeGroup || hint === repository.untrackedGroup) { </ins> return liveRepository; } }