aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2013-10-24 17:30:27 -0400
committerGravatar David Bremner <bremner@debian.org>2013-10-27 17:35:58 -0300
commit9f9a63c863e2eac1adebef16a103d7bc0ccdc291 (patch)
treeb7b9ccd82faeb19240bf614c8592f6d2675a94e7 /emacs
parenta7964c86d12558396cda0f297ebf8dcc602bab61 (diff)
emacs: Add a space after completed tag operations
Previously, when a user fully completed a tag operation, they had to press space to begin entering another tag operation. This is different from, say, shell file name completion, which typically inserts a space after an unambiguous completion under the assumption that the user will want to enter more input. This patch tweaks `notmuch-read-tag-changes' to act more like shell file name completion: after an unambiguous tag completion, it now inserts a space, ready and waiting for another tagging operation from the user. This is backwards-compatible with old habits, since there's no harm in putting an extra space.
Diffstat (limited to 'emacs')
-rw-r--r--emacs/notmuch-tag.el12
1 files changed, 10 insertions, 2 deletions
diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el
index 22a603fc..f705ac5d 100644
--- a/emacs/notmuch-tag.el
+++ b/emacs/notmuch-tag.el
@@ -230,8 +230,16 @@ initial input in the minibuffer."
(set-keymap-parent map crm-local-completion-map)
(define-key map " " 'self-insert-command)
map)))
- (delete "" (completing-read-multiple prompt
- tag-list nil nil initial-input
+ (delete "" (completing-read-multiple
+ prompt
+ ;; Append the separator to each completion so when the
+ ;; user completes a tag they can immediately begin
+ ;; entering another. `completing-read-multiple'
+ ;; ultimately splits the input on crm-separator, so we
+ ;; don't need to strip this back off (we just need to
+ ;; delete "empty" entries caused by trailing spaces).
+ (mapcar (lambda (tag-op) (concat tag-op crm-separator)) tag-list)
+ nil nil initial-input
'notmuch-read-tag-changes-history))))
(defun notmuch-update-tags (tags tag-changes)