diff options
author | Austin Clements <amdragon@MIT.EDU> | 2013-10-24 17:30:27 -0400 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2013-10-27 17:35:58 -0300 |
commit | 9f9a63c863e2eac1adebef16a103d7bc0ccdc291 (patch) | |
tree | b7b9ccd82faeb19240bf614c8592f6d2675a94e7 /emacs | |
parent | a7964c86d12558396cda0f297ebf8dcc602bab61 (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.el | 12 |
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) |