New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite which
#1144
Merged
Merged
Rewrite which
#1144
Conversation
This file contains 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
This expands the built-in `which` command to detect nushell commands that may have the same name as a binary in the path.
Previously, it would discard any argument besides the first. This allows `which` to process multiple arguments. It also makes the output a stream of rows.
In order to use `ichwh`, I'll need to use async_stream. But in order to avoid lifetime errors with that, I have to process the command args before using them. I'll admit I don't fully understand what is going on with the `args.process(...)` function, but it works.
This commit transitions from `which` to `ichwh`. The path search is now done asynchronously.
Escaped commands passed to wich (e.g., `which "^ls"`), are now searched before builtins.
This commit resolves two warnings from clippy, in light of nushell#1142.
`ichwh@0.2.1` has support for local paths.
Looks good! |
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.
This pull request is a re-write of the
which
command primarily to identify nushell built-in commands. The command now behaves very similarly to GNU which and zsh'swhich
command, while outputting usablenushell
objects instead of a plain string. The path searching is also now asynchronous, avoiding blocking the thread.This was primarily accomplished by writing a new, asynchronous crate called
ichwh
. It handles all of the path searching, and thenu
command manages the arguments and the value conversion.The command is cross-platform. The
ichwh
documentation has a note about path searching on windows versus unix.Documentation for the command is also added by this PR.
Future Work
nu
, the command should be updated to detect themResolves #1067