diff options
author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2015-01-25 11:22:18 +0000 |
---|---|---|
committer | Daniel Shahaf <d.s@daniel.shahaf.name> | 2015-02-01 11:36:02 +0000 |
commit | 061dc888d3bef5ab85ab1afccd54e2d3323d1177 (patch) | |
tree | af4be48385a57e3983ab917819221c07feb0697f /Completion/Unix/Command/_hg | |
parent | ce211bb8d11a030dbb9ad99f9590a378efdd4580 (diff) | |
download | zsh-061dc888d3bef5ab85ab1afccd54e2d3323d1177.tar.gz zsh-061dc888d3bef5ab85ab1afccd54e2d3323d1177.tar.xz zsh-061dc888d3bef5ab85ab1afccd54e2d3323d1177.zip |
34411: _hg completion: Complete bookmark names for -r
While there, simplify `hg tags` parsing.
Diffstat (limited to 'Completion/Unix/Command/_hg')
-rw-r--r-- | Completion/Unix/Command/_hg | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Completion/Unix/Command/_hg b/Completion/Unix/Command/_hg index c18500bcb..e7c21b9d1 100644 --- a/Completion/Unix/Command/_hg +++ b/Completion/Unix/Command/_hg @@ -162,15 +162,24 @@ _hg_revrange() { _hg_tags "$@" } -_hg_tags() { - typeset -a tags - local tag rev +_hg_tags_internal() { + local expl + typeset -a hgtags + hgtags=( ${(f)"$(_hg_cmd tags -q 2>/dev/null)"} ) + _wanted tags expl 'tags' compadd -a - hgtags +} - _hg_cmd tags 2> /dev/null | while read tag - do - tags+=(${tag/ # [0-9]#:*}) - done - (( $#tags )) && _describe -t tags 'tags' tags +_hg_bookmarks_internal() { + local expl + typeset -a hgbookmarks + hgbookmarks=( ${(f)"$(_hg_cmd bookmarks -q 2>/dev/null)"} ) + _wanted bookmarks expl 'bookmarks' compadd -a - hgbookmarks +} + +_hg_tags() { + _alternative \ + 'bookmarks:bookmark:_hg_bookmarks_internal' \ + 'tags:tag:_hg_tags_internal' } # likely merge candidates |