mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 10:01:11 +02:00
github #134 (+ implement commit review suggestion): __git_worktrees: Use a library function
Using _describe makes the completions and descriptions line up in columns, and makes the function honour the list-separator style.
This commit is contained in:
parent
fceece6a8a
commit
2ccf41e577
2 changed files with 10 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2025-05-18 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||||
|
|
||||||
|
* github #134 (+ implement commit review suggestion):
|
||||||
|
Completion/Unix/Command/_git: __git_worktrees: Use a library
|
||||||
|
function
|
||||||
|
|
||||||
2025-05-17 Daniel Shahaf <d.s@daniel.shahaf.name>
|
2025-05-17 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||||
|
|
||||||
* unposted: Fix a ChangeLog typo reported offlist.
|
* unposted: Fix a ChangeLog typo reported offlist.
|
||||||
|
|
|
@ -8514,6 +8514,7 @@ __git_worktrees () {
|
||||||
local -a records=( ${(ps.\n\n.)"$(_call_program directories git worktree list --porcelain)"} )
|
local -a records=( ${(ps.\n\n.)"$(_call_program directories git worktree list --porcelain)"} )
|
||||||
local -a directories descriptions
|
local -a directories descriptions
|
||||||
local i hash branch
|
local i hash branch
|
||||||
|
local match mbegin mend
|
||||||
for i in $records; do
|
for i in $records; do
|
||||||
directories+=( ${${i%%$'\n'*}#worktree } )
|
directories+=( ${${i%%$'\n'*}#worktree } )
|
||||||
hash=${${${"${(f)i}"[2]}#HEAD }[1,9]}
|
hash=${${${"${(f)i}"[2]}#HEAD }[1,9]}
|
||||||
|
@ -8527,9 +8528,10 @@ __git_worktrees () {
|
||||||
branch="[$branch]"
|
branch="[$branch]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
descriptions+=( "${directories[-1]}"$'\t'"$hash $branch" )
|
descriptions+=( "${directories[-1]//(#b)([\\:])/\\${match[1]}}":"$hash $branch" )
|
||||||
done
|
done
|
||||||
_wanted directories expl 'working tree' compadd -ld descriptions -S ' ' -f -M 'r:|/=* r:|=*' -a directories
|
|
||||||
|
_describe -t directories 'working tree' descriptions -S ' ' -f -M 'r:|/=* r:|=*'
|
||||||
}
|
}
|
||||||
|
|
||||||
(( $+functions[__git_difftools] )) ||
|
(( $+functions[__git_difftools] )) ||
|
||||||
|
|
Loading…
Reference in a new issue