[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] addition to zsh completion
From: |
Bruce Stephens |
Subject: |
[Monotone-devel] addition to zsh completion |
Date: |
Thu, 21 Sep 2006 22:23:24 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
The attached adds a _mtn_tags, to complete tag names (presuming they
don't contain spaces), and _mtn_public_keys (presuming they're likely
also to be author names), and uses those (and _mtn_branches) to
complete selectors (_mtn_selectors).
_mtn_selector_or_revision combines _mtn_selectors and _mtn_revisions,
and the patch changes all uses of _mtn_revisions to use
_mtn_selector_or_revision.
#
# old_revision [06656f9d10c99cbb9e5c01af5bfad4e26402091d]
#
# patch "contrib/monotone.zsh_completion"
# from [883593971ede89e65a9348bed7ab5ec5453925fe]
# to [9a48dedae6e15e7e93f0f7c80d93f34e9466f687]
#
============================================================
--- contrib/monotone.zsh_completion 883593971ede89e65a9348bed7ab5ec5453925fe
+++ contrib/monotone.zsh_completion 9a48dedae6e15e7e93f0f7c80d93f34e9466f687
@@ -1,4 +1,4 @@
-#compdef mtn # -*-sh-*-
+#compdef mtn
#
# ZSH Completion for Monotone
#
@@ -87,7 +87,7 @@ _mtn_annotate() {
(( $+functions[_mtn_annotate] )) ||
_mtn_annotate() {
_arguments -s : \
- {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_revisions'\
+ {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_selector_or_revision'\
'--brief[print a brief version of the normal output]'\
'(*)*:file to annotate:_mtn_files_known'
}
@@ -96,7 +96,7 @@ _mtn_approve() {
_mtn_approve() {
_arguments -s : \
{'(--branch)-b+','(-b)--branch='}'[select branch cert for
operation]:branch:_mtn_branches'\
- '(*)*:revision:_mtn_revisions'
+ '(*)*:revision:_mtn_selector_or_revision'
}
(( $+functions[_mtn_attr] )) ||
@@ -126,14 +126,14 @@ _mtn_cat() {
(( $+functions[_mtn_cat] )) ||
_mtn_cat() {
_arguments -s : \
- {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_revisions'\
+ {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_selector_or_revision'\
'*:file to cat:_mtn_files_known'
}
(( $+functions[_mtn_cert] )) ||
_mtn_cert() {
_arguments -s : \
- '1:revision:_mtn_revisions'\
+ '1:revision:_mtn_selector_or_revision'\
'2:certname: '\
'3:certval: '
}
@@ -142,7 +142,7 @@ _mtn_checkout() {
_mtn_checkout() {
_arguments -s : \
{'(--branch)-b+','(-b)--branch='}'[select branch cert for
operation]:branch:_mtn_branches'\
- {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_revisions'\
+ {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_selector_or_revision'\
'(*)*:directory for checkout: '
}
@@ -164,7 +164,7 @@ _mtn_comment() {
(( $+functions[_mtn_comment] )) ||
_mtn_comment() {
_arguments -s : \
- '1:revision:_mtn_revisions'\
+ '1:revision:_mtn_selector_or_revision'\
'2:comment: '
}
@@ -205,7 +205,7 @@ _mtn_diff() {
(( $+functions[_mtn_diff] )) ||
_mtn_diff() {
_arguments -s : \
- {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_revisions'\
+ {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_selector_or_revision'\
'--depth=[limit the number of levels of directories to descend]:depth:
'\
'--exclude=[leave out anything described by its
argument]:file:_mtn_files_known'\
{'(--unified)-u','(-u)--unified'}'[use unified diff format]'\
@@ -220,7 +220,7 @@ _mtn_disapprove() {
_mtn_disapprove() {
_arguments -s : \
{'(--branch)-b+','(-b)--branch='}'[select branch cert for
operation]:branch:_mtn_branches'\
- '(*)*:revision to disapprove:_mtn_revisions'
+ '(*)*:revision to disapprove:_mtn_selector_or_revision'
}
(( $+functions[_mtn_drop] )) ||
@@ -240,8 +240,8 @@ _mtn_explicit_merge() {
(( $+functions[_mtn_explicit_merge] )) ||
_mtn_explicit_merge() {
_arguments -s : \
- '1:left revision:_mtn_revisions'\
- '2:right revision:_mtn_revisions'\
+ '1:left revision:_mtn_selector_or_revision'\
+ '2:right revision:_mtn_selector_or_revision'\
'3:dest branch:_mtn_branches'
}
@@ -254,7 +254,7 @@ _mtn_log() {
(( $+functions[_mtn_log] )) ||
_mtn_log() {
_arguments -s : \
- {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_revisions'\
+ {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_selector_or_revision'\
'--last=[limit log output to the last number of entries]:last: ' \
'--next=[limit log output to the next number of entries]:next: ' \
'--brief[print a brief version of the normal output]'\
@@ -358,16 +358,16 @@ _mtn_sync() {
}
(( $+functions[_mtn_tag] )) ||
-q_mtn_tag() {
+_mtn_tag() {
_arguments -s : \
- '1:revision to tag:_mtn_revisions'\
+ '1:revision to tag:_mtn_selector_or_revision'\
'(1)*:tagname: '
}
(( $+functions[_mtn_result] )) ||
_mtn_testresult() {
_arguments -s : \
- '1:revision:_mtn_revisions'\
+ '1:revision:_mtn_selector_or_revision'\
'2:result:(pass fail true false yes no 1 0)'
}
@@ -375,7 +375,7 @@ _mtn_update() {
_mtn_update() {
_arguments -s : \
{'(--branch)-b+','(-b)--branch='}'[select branch cert for
operation]:branch:_mtn_branches'\
- {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_revisions'
+ {'(--revision)-r+','(-r)--revision='}'[select revision id for
operation]:revision:_mtn_selector_or_revision'
}
# define completion functions for files maintained by monotone.
@@ -411,6 +411,16 @@ _mtn_branches() {
compadd -- $(mtn ls branches 2>/dev/null)
}
+(( $+functions[_mtn_tags] )) ||
+_mtn_tags() {
+ compadd -- ${(u)${(f)"$(mtn ls tags 2>/dev/null)"}%% *}
+}
+
+(( $+functions[_mtn_public_keys] )) ||
+_mtn_public_keys() {
+ compadd -- ${${${(@M)${(f)"$(mtn ls keys 2>/dev/null)"}:address@hidden
}%%* *}
+}
+
(( $+functions[_mtn_keys] )) ||
_mtn_keys() {
if [[ -n $PREFIX ]]; then
@@ -427,6 +437,28 @@ _mtn_revisions() {
fi
}
+(( $+functions[_mtn_selectors] )) ||
+_mtn_selectors() {
+ local context state line
+ typeset -A val_args
+
+ _values -s / -S : selector \
+ '*b[branches]:branch:_mtn_branches' \
+ '*h[branch heads]:branch head:_mtn_branches' \
+ '*t[tags]:tag:_mtn_tags' \
+ '*a[authors]:author:_mtn_public_keys' \
+ '*d[date]:date:' \
+ '*e[earlier than]:date:' \
+ '*l[later than]:date:' \
+ '*i[revision id]:revision id:_mtn_revisions'
+}
+
+(( $+functions[_mtn_selector_or_revision] )) ||
+_mtn_selector_or_revision() {
+ _alternative 'selector:selector:_mtn_selectors' \
+ 'revision:revision:_mtn_revisions'
+}
+
# helper function, determines cwd relative to the root of the workspace
(( $+functions[_mtn_rcwd] )) ||
- [Monotone-devel] addition to zsh completion,
Bruce Stephens <=