Mercurial > emacs
changeset 105800:35ac8b2ebcf2
(vc-bzr-revision-keywords): New var.
(vc-bzr-revision-completion-table): Use it to fix completion of "s:"
to "submit:".
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 30 Oct 2009 05:48:13 +0000 |
parents | 3fe6da4a95a9 |
children | 377db307ede9 |
files | lisp/ChangeLog lisp/vc-bzr.el |
diffstat | 2 files changed, 26 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Oct 30 02:16:41 2009 +0000 +++ b/lisp/ChangeLog Fri Oct 30 05:48:13 2009 +0000 @@ -1,3 +1,9 @@ +2009-10-30 Stefan Monnier <monnier@iro.umontreal.ca> + + * vc-bzr.el (vc-bzr-revision-keywords): New var. + (vc-bzr-revision-completion-table): Use it to fix completion of "s:" + to "submit:". + 2009-10-30 Dan Nicolaescu <dann@ics.uci.edu> * textmodes/ispell.el (ispell-skip-region-alist):
--- a/lisp/vc-bzr.el Fri Oct 30 02:16:41 2009 +0000 +++ b/lisp/vc-bzr.el Fri Oct 30 05:48:13 2009 +0000 @@ -728,6 +728,11 @@ ;;; Revision completion +(eval-and-compile + (defconst vc-bzr-revision-keywords + '("revno" "revid" "last" "before" + "tag" "date" "ancestor" "branch" "submit"))) + (defun vc-bzr-revision-completion-table (files) (lexical-let ((files files)) ;; What about using `files'?!? --Stef @@ -762,20 +767,25 @@ (push (match-string-no-properties 1) table))) (completion-table-with-context prefix table tag pred action))) - ((string-match "\\`\\(revid\\):" string) - ;; FIXME: How can I get a list of revision ids? - ) - ((eq (car-safe action) 'boundaries) - (list* 'boundaries - (string-match "[^:]*\\'" string) - (string-match ":" (cdr action)))) + ((string-match "\\`\\([a-z]+\\):" string) + ;; no actual completion for the remaining keywords. + (completion-table-with-context (substring string 0 (match-end 0)) + (if (member (match-string 1 string) + vc-bzr-revision-keywords) + ;; If it's a valid keyword, + ;; use a non-empty table to + ;; indicate it. + '("") nil) + (substring string (match-end 0)) + pred + action)) (t ;; Could use completion-table-with-terminator, except that it ;; currently doesn't work right w.r.t pcm and doesn't give ;; the *Completions* output we want. - (complete-with-action action '("revno:" "revid:" "last:" "before:" - "tag:" "date:" "ancestor:" "branch:" - "submit:") + (complete-with-action action (eval-when-compile + (mapcar (lambda (s) (concat s ":")) + vc-bzr-revision-keywords)) string pred)))))) (eval-after-load "vc"