Files
vscode/extensions/vscode-api-tests
Anthony Kim e6805d7927 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>
2025-01-10 16:22:07 -08:00
..