Pass the path to shellIntegration.ps1 directly to the server#4959
Merged
andyleejordan merged 1 commit intomainfrom Apr 3, 2024
Merged
Pass the path to shellIntegration.ps1 directly to the server#4959andyleejordan merged 1 commit intomainfrom
shellIntegration.ps1 directly to the server#4959andyleejordan merged 1 commit intomainfrom
Conversation
The server can't use `code --locate-shell-integration-path pwsh` because it doesn't know if it's `code` or `code-insiders` etc. Even when given the direct path to the client's host process, it can't reliably use that API either. Mostly this is due to Windows using `Code.cmd` in the background (which is not `Code.exe`, the host process) but it's also slower anyway as it requires another launch of Node.js. We'll have to rely on the path to the script not changing relative to `vscode.env.appRoot`, but at least that part is a public API.
5f20f63 to
7703924
Compare
shellIntegration.ps1 directly to the server
andyleejordan
commented
Apr 3, 2024
| // When Terminal Shell Integration is enabled, we pass the path to the script that the server should execute. | ||
| // Passing an empty string implies integration is disabled. | ||
| const shellIntegrationEnabled = vscode.workspace.getConfiguration("terminal.integrated.shellIntegration").get<boolean>("enabled"); | ||
| const shellIntegrationScript = path.join(vscode.env.appRoot, "out", "vs", "workbench", "contrib", "terminal", "browser", "media", "shellIntegration.ps1"); |
Member
Author
There was a problem hiding this comment.
@Tyriar I'm taking a hard dependency on this relative-to-app-root path. You all have too, but just internally as far as I can tell. Trust me, it was no good going down the road of passing process.argv0 and trying to use code --locate-blah-blah.
Contributor
There was a problem hiding this comment.
Good to know, chances of that path changing are very slim anyway
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The server can't use
code --locate-shell-integration-path pwshbecause it doesn't know if it'scodeorcode-insidersetc. Even when given the direct path to the client's host process, it can't reliably use that API either. Mostly this is due to Windows usingCode.cmdin the background (which is notCode.exe, the host process) but it's also slower anyway as it requires another launch of Node.js.We'll have to rely on the path to the script not changing relative to
vscode.env.appRoot, but at least that part is a public API.Required by PowerShell/PowerShellEditorServices#2156.