zsh-users / zsh-syntax-highlighting

Fish shell like syntax highlighting for Zsh.
github.com/zsh-users/zsh-syntax-highlighting
BSD 3-Clause "New" or "Revised" License
20k stars 1.33k forks source link

Highlight `npx` as a command that runs other commands #939

Open bricka opened 11 months ago

bricka commented 11 months ago

npx is a command from Nodejs that executes a command either from the path or from the installed Node packages: https://www.npmjs.com/package/npx

This means that when I run something like npx webpack, the command that "really" gets run is webpack, not npx.

I know that when I run time or sudo, that gets highlighted differently from the command that "really" gets run. Is it possible to do something similar for npx? I expect that one issue is that the following command may or may not be in the PATH, which makes it tough to highlight it correctly.

I'm not deep enough in zsh to know if this is something that requires a code change to this package or some way of tagging the command within zsh, but any advice or thoughts would be welcome!

phy1729 commented 11 months ago

Since npx in effect uses its own $PATH (e.g. npx echo foo fails but npx tsc runs even though tsc is not a command zsh recognizes), npx doesn't fit with the currently supported precommands. Supporting npx properly would probably take adding a way to specify a precommand specific PATH (which could also be used by sudo cf. #107).