Warn users if shadownev is not installed #2498
Merged
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.
Motivation
We received an interesting report where activating the Ruby environment with shadowenv was failing. It turned out that it was not failing because the workspace was untrusted, but because the extension couldn't find the shadowenv executable because sourcing the user's
~/.zshrc
was taking too long and exceeded VS Code's timeout for launching the shell.The problem ended up being more confusing than it had to be because we always assume that any Shadowenv failures are because the workspace is untrusted.
This PR just adds a custom error for when Shadowenv is not found, so that users are better informed of why it failed.
Implementation
Started checking the error message. Each shell shows a different message when an executable is not available, so I tried to go for a catch all implementation.
Automated Tests
The Shadowenv tests were both brittle and a bit redundant, so I did a little bit of restructuring and added a new example.