diff options
Diffstat (limited to 'plugins/jj/jj.plugin.zsh')
| -rw-r--r-- | plugins/jj/jj.plugin.zsh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/plugins/jj/jj.plugin.zsh b/plugins/jj/jj.plugin.zsh new file mode 100644 index 000000000..696bc380b --- /dev/null +++ b/plugins/jj/jj.plugin.zsh @@ -0,0 +1,70 @@ +# if jj is not found, don't do the rest of the script +if (( ! $+commands[jj] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `jj`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_jj" ]]; then + typeset -g -A _comps + autoload -Uz _jj + _comps[jj]=_jj +fi + +COMPLETE=zsh jj >| "$ZSH_CACHE_DIR/completions/_jj" &| + +function __jj_prompt_jj() { + local -a flags + flags=("--no-pager") + if zstyle -t ':omz:plugins:jj' ignore-working-copy; then + flags+=("--ignore-working-copy") + fi + command jj $flags "$@" +} + +# convenience functions for themes +function jj_prompt_template_raw() { + __jj_prompt_jj log --no-graph -r @ -T "$@" 2> /dev/null +} + +function jj_prompt_template() { + local out + out=$(jj_prompt_template_raw "$@") || return 1 + echo "${out:gs/%/%%}" +} + +# Aliases (sorted alphabetically) +alias jjb='jj bookmark' +alias jjbc='jj bookmark create' +alias jjbd='jj bookmark delete' +alias jjbf='jj bookmark forget' +alias jjbl='jj bookmark list' +alias jjbm='jj bookmark move' +alias jjbr='jj bookmark rename' +alias jjbs='jj bookmark set' +alias jjbt='jj bookmark track' +alias jjbu='jj bookmark untrack' +alias jjc='jj commit' +alias jjcmsg='jj commit --message' +alias jjd='jj diff' +alias jjdmsg='jj desc --message' +alias jjds='jj desc' +alias jje='jj edit' +alias jjgcl='jj git clone' +alias jjgf='jj git fetch' +alias jjgfa='jj git fetch --all-remotes' +alias jjgp='jj git push' +alias jjgpa='jj git push --all' +alias jjgpd='jj git push --deleted' +alias jjgpt='jj git push --tracked' +alias jjl='jj log' +alias jjla='jj log -r "all()"' +alias jjn='jj new' +alias jjnt='jj new "trunk()"' +alias jjrb='jj rebase' +alias jjrbm='jj rebase -d "trunk()"' +alias jjrs='jj restore' +alias jjrt='cd "$(jj root || echo .)"' +alias jjsp='jj split' +alias jjsq='jj squash' +alias jjst='jj status' |
