Port VS Code 1.56.0 Hotfixes (#15912)

* fix #123040

* Switch priority of shell/shellArgs and defaultProfile setting

Fixes #123159

We were too aggressive introducing the new default profile system as many
users (as well as dev containers, microsoft/vscode-dev-containers#838) depend
on these settings for their workflow. This also includes a change in behavior
where if shellArgs are specified, they are applied to the fallback shell
(even when shell.platform isn't specified), which aligns with past behavior.

* fixes #123036 (#123263)

* fixes #123041 (#123287)

* 1.56 fix for #123044

* Do not invoke `resolveWithInteraction` over terminal settings (#123590)

* Change grunt, gulp and jake task auto detection to be off by default (#123588)

Co-authored-by: meganrogge <megrogge@gmail.com>
Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
Co-authored-by: João Moreno <joao.moreno@microsoft.com>
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Co-authored-by: Alex Dima <alexdima@microsoft.com>
This commit is contained in:
Charles Gagnon
2021-06-29 08:51:21 -07:00
committed by GitHub
parent 5fa53c3519
commit dac1bdafd7
12 changed files with 131 additions and 40 deletions

View File

@@ -26,6 +26,13 @@ export interface IConfigurationResolverService {
*/
resolveAnyAsync(folder: IWorkspaceFolder | undefined, config: any, commandValueMapping?: IStringDictionary<string>): Promise<any>;
/**
* Recursively resolves all variables in the given config.
* Returns a copy of it with substituted values and a map of variables and their resolution.
* Keys in the map will be of the format input:variableName or command:variableName.
*/
resolveAnyMap(folder: IWorkspaceFolder | undefined, config: any, commandValueMapping?: IStringDictionary<string>): Promise<{ newConfig: any, resolvedVariables: Map<string, string> }>;
/**
* Recursively resolves all variables (including commands and user input) in the given config and returns a copy of it with substituted values.
* If a "variables" dictionary (with names -> command ids) is given, command variables are first mapped through it before being resolved.

View File

@@ -99,7 +99,7 @@ export class AbstractVariableResolverService implements IConfigurationResolverSe
return this.resolveAnyBase(workspaceFolder, config, commandValueMapping);
}
protected async resolveAnyMap(workspaceFolder: IWorkspaceFolder | undefined, config: any, commandValueMapping?: IStringDictionary<string>): Promise<{ newConfig: any, resolvedVariables: Map<string, string> }> {
public async resolveAnyMap(workspaceFolder: IWorkspaceFolder | undefined, config: any, commandValueMapping?: IStringDictionary<string>): Promise<{ newConfig: any, resolvedVariables: Map<string, string> }> {
const resolvedVariables = new Map<string, string>();
const newConfig = await this.resolveAnyBase(workspaceFolder, config, commandValueMapping, resolvedVariables);
return { newConfig, resolvedVariables };