mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-05 01:46:46 +01:00
feat: add pnpm plugin
This commit is contained in:
parent
6e7ac0544e
commit
758ec0b826
2 changed files with 171 additions and 0 deletions
123
plugins/pnpm/pnpm.plugin.zsh
Normal file
123
plugins/pnpm/pnpm.plugin.zsh
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
(( $+commands[pnpm] )) && {
|
||||
command rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/pnpm_completion"
|
||||
|
||||
_pnpm_completion() {
|
||||
local si=$IFS
|
||||
compadd -- $(COMP_CWORD=$((CURRENT-1)) \
|
||||
COMP_LINE=$BUFFER \
|
||||
COMP_POINT=0 \
|
||||
pnpm completion -- "${words[@]}" \
|
||||
2>/dev/null)
|
||||
IFS=$si
|
||||
}
|
||||
compdef _pnpm_completion pnpm
|
||||
}
|
||||
|
||||
# Install dependencies globally
|
||||
alias pnpmg="pnpm add -g "
|
||||
|
||||
# pnpm package names are lowercase
|
||||
# Thus, we've used camelCase for the following aliases:
|
||||
|
||||
# Install and save to dependencies in your package.json
|
||||
alias pnpmS="pnpm add -S "
|
||||
|
||||
# Install and save to dev-dependencies in your package.json
|
||||
alias pnpmD="pnpm add -D "
|
||||
|
||||
# Force pnpm to fetch remote resources even if a local copy exists on disk.
|
||||
alias pnpmF='pnpm add -f'
|
||||
|
||||
# Execute command from node_modules folder based on current directory
|
||||
# i.e pnpmE gulp
|
||||
alias pnpmE='PATH="$(pnpm bin)":"$PATH"'
|
||||
|
||||
# Check which pnpm modules are outdated
|
||||
alias pnpmO="pnpm outdated"
|
||||
|
||||
# Update all the packages listed to the latest version
|
||||
alias pnpmU="pnpm update"
|
||||
|
||||
# Check package versions
|
||||
alias pnpmV="pnpm -v"
|
||||
|
||||
# List packages
|
||||
alias pnpmL="pnpm list"
|
||||
|
||||
# List top-level installed packages
|
||||
alias pnpmL0="pnpm ls --depth=0"
|
||||
|
||||
# Run pnpm start
|
||||
alias pnpmst="pnpm start"
|
||||
|
||||
# Run pnpm test
|
||||
alias pnpmt="pnpm test"
|
||||
|
||||
# Run pnpm scripts
|
||||
alias pnpmR="pnpm run"
|
||||
|
||||
# Run pnpm publish
|
||||
alias pnpmP="pnpm publish"
|
||||
|
||||
# Run pnpm init
|
||||
alias pnpmI="pnpm init"
|
||||
|
||||
# Run pnpm info
|
||||
alias pnpmi="pnpm info"
|
||||
|
||||
# Run pnpm search
|
||||
alias pnpmSe="pnpm search"
|
||||
|
||||
# Run pnpm run dev
|
||||
alias pnpmrd="pnpm run dev"
|
||||
|
||||
# Run pnpm run build
|
||||
alias pnpmrb="pnpm run build"
|
||||
|
||||
pnpm_toggle_install_uninstall() {
|
||||
# Look up to the previous 2 history commands
|
||||
local line
|
||||
for line in "$BUFFER" \
|
||||
"${history[$((HISTCMD-1))]}" \
|
||||
"${history[$((HISTCMD-2))]}"
|
||||
do
|
||||
case "$line" in
|
||||
"pnpm uninstall"*)
|
||||
BUFFER="${line/pnpm uninstall/pnpm install}"
|
||||
(( CURSOR = CURSOR + 2 )) # uninstall -> install: 2 chars removed
|
||||
;;
|
||||
"pnpm install"*)
|
||||
BUFFER="${line/pnpm install/pnpm uninstall}"
|
||||
(( CURSOR = CURSOR + 2 )) # install -> uninstall: 2 chars added
|
||||
;;
|
||||
"pnpm remove"*)
|
||||
BUFFER="${line/pnpm remove/pnpm add}"
|
||||
(( CURSOR = CURSOR + 5 )) # remove -> add: 5 chars removed
|
||||
;;
|
||||
"pnpm add"*)
|
||||
BUFFER="${line/pnpm add/pnpm remove}"
|
||||
(( CURSOR = CURSOR + 2 )) # add -> remove: 2 chars added
|
||||
;;
|
||||
"pnpm un "*)
|
||||
BUFFER="${line/pnpm un/pnpm add}"
|
||||
(( CURSOR = CURSOR + 5 )) # un -> add: 5 chars added
|
||||
;;
|
||||
"pnpm i "*)
|
||||
BUFFER="${line/pnpm i/pnpm remove}"
|
||||
(( CURSOR = CURSOR + 8 )) # i -> remove: 8 chars added
|
||||
;;
|
||||
*) continue ;;
|
||||
esac
|
||||
return 0
|
||||
done
|
||||
|
||||
BUFFER="pnpm install"
|
||||
CURSOR=${#BUFFER}
|
||||
}
|
||||
|
||||
zle -N pnpm_toggle_install_uninstall
|
||||
|
||||
# Defined shortcut keys: [F2] [F2]
|
||||
bindkey -M emacs '^[OQ^[OQ' pnpm_toggle_install_uninstall
|
||||
bindkey -M vicmd '^[OQ^[OQ' pnpm_toggle_install_uninstall
|
||||
bindkey -M viins '^[OQ^[OQ' pnpm_toggle_install_uninstall
|
||||
Loading…
Add table
Add a link
Reference in a new issue