mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 02:58:56 +01:00
Expose shell's environment - bash (#237602)
* start terminal shell env proposed * fix typo * progress on shellEnvDetectionCapability, mainThreadTerminalSI * update IShellEnvDetectionCapability interface * touch up on $shellEnvChange * adjust IShellEnvDetectionCapability * properly listen to envChangeEvent Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com> * Serialize env map, expose on exthost * start adding to zsh script * receive environment variable in extension host, properly escape " Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com> * clean up * Add TODO: properly escape double quotes, figure out why JSON parse fails for bash Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com> * Fix nonce check, ignore PS1 for now in bash * Add some simple PS1 string tests to deserializeMessage * New approach of sending env entries separately * be able to get EnvSingleVar * few comments * add function signature for start, set, end environment var * implement EnvStart, EnvEntry, EnvEnd for single env entry * deserialize env value for EnvEntry * Remove unncessary comments * only leave pwsh in this PR and exclude other shells * keep exlcuding other shell env - only pwsh should remain * Update src/vs/workbench/api/common/extHostTerminalShellIntegration.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vscode-dts/vscode.proposed.terminalShellEnv.d.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1 Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/api/common/extHostTerminalShellIntegration.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/api/common/extHost.protocol.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/capabilities/capabilities.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * add comment for ShellEnvDetection * change envs in shellEnvDetectionCapability to env * Mention escaping character for EnvJSON similar to commandLine * Do not fire env event if env has not changed * add link to CommandLine * follow main branch format so I avoid merge conflict * remove resolved TODO * Update src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * use vscode object equals * add zsh update_env for shellIntegration-zsh.sh * add EnvStart, EnvEntry, EnvEnd * why doesnt if [ "$__vsc_stable" = "0" ]; work * add test to check shellPath * stop messing with formatting * try to be more detail in testing * clean up * dont change the format * properly use stable/insider flag so update_env on insiders * modify test after feedback * rename to *EnvironmentSingleVar and make it transactional via _pending env * add docs for *EnvSingle and update bash script to conform to *EnvSingle * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com> * remove _env.clear from start and make _env non-readonly * Update src/vs/platform/terminal/common/capabilities/shellEnvDetectionCapability.ts --------- Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com> Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
This commit is contained in:
@@ -87,6 +87,16 @@ import { assertNoRpc } from '../utils';
|
||||
await closeTerminalAsync(terminal);
|
||||
});
|
||||
|
||||
if (platform() === 'darwin' || platform() === 'linux') {
|
||||
test('Test if env is set', async () => {
|
||||
const { shellIntegration } = await createTerminalAndWaitForShellIntegration();
|
||||
const env = shellIntegration.env;
|
||||
ok(env);
|
||||
ok(env.PATH);
|
||||
ok(env.PATH.length > 0, 'env.PATH should have a length greater than 0');
|
||||
});
|
||||
}
|
||||
|
||||
test('execution events should fire in order when a command runs', async () => {
|
||||
const { terminal, shellIntegration } = await createTerminalAndWaitForShellIntegration();
|
||||
const events: string[] = [];
|
||||
|
||||
Reference in New Issue
Block a user