mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 10:58:10 +01:00
emacs: Adjust search refresh to use a target line not a target position.
It doesn't make sense to move the cursor to some random point in the middle of a line. We always want the refresh to leave the cursor at the beginning of some line instead.
This commit is contained in:
parent
86232e62ab
commit
70ef8de798
1 changed files with 12 additions and 14 deletions
|
@ -1247,7 +1247,7 @@ matching this search term are shown if non-nil. "
|
||||||
|
|
||||||
(defvar notmuch-search-query-string)
|
(defvar notmuch-search-query-string)
|
||||||
(defvar notmuch-search-target-thread)
|
(defvar notmuch-search-target-thread)
|
||||||
(defvar notmuch-search-target-position)
|
(defvar notmuch-search-target-line)
|
||||||
(defvar notmuch-search-oldest-first t
|
(defvar notmuch-search-oldest-first t
|
||||||
"Show the oldest mail first in the search-mode")
|
"Show the oldest mail first in the search-mode")
|
||||||
|
|
||||||
|
@ -1349,7 +1349,7 @@ Complete list of currently available key bindings:
|
||||||
(make-local-variable 'notmuch-search-query-string)
|
(make-local-variable 'notmuch-search-query-string)
|
||||||
(make-local-variable 'notmuch-search-oldest-first)
|
(make-local-variable 'notmuch-search-oldest-first)
|
||||||
(make-local-variable 'notmuch-search-target-thread)
|
(make-local-variable 'notmuch-search-target-thread)
|
||||||
(make-local-variable 'notmuch-search-target-position)
|
(make-local-variable 'notmuch-search-target-line)
|
||||||
(set (make-local-variable 'scroll-preserve-screen-position) t)
|
(set (make-local-variable 'scroll-preserve-screen-position) t)
|
||||||
(add-to-invisibility-spec 'notmuch-search)
|
(add-to-invisibility-spec 'notmuch-search)
|
||||||
(use-local-map notmuch-search-mode-map)
|
(use-local-map notmuch-search-mode-map)
|
||||||
|
@ -1484,8 +1484,9 @@ This function advances the next thread when finished."
|
||||||
(if (and atbob
|
(if (and atbob
|
||||||
notmuch-search-target-thread)
|
notmuch-search-target-thread)
|
||||||
(set 'never-found-target-thread t))))))
|
(set 'never-found-target-thread t))))))
|
||||||
(if never-found-target-thread
|
(if (and never-found-target-thread
|
||||||
(goto-char notmuch-search-target-position)))))))
|
notmuch-search-target-line)
|
||||||
|
(goto-line notmuch-search-target-line)))))))
|
||||||
|
|
||||||
(defun notmuch-search-process-filter (proc string)
|
(defun notmuch-search-process-filter (proc string)
|
||||||
"Process and filter the output of \"notmuch search\""
|
"Process and filter the output of \"notmuch search\""
|
||||||
|
@ -1549,7 +1550,7 @@ characters as well as `_.+-'.
|
||||||
(append action-split (list notmuch-search-query-string) nil))))
|
(append action-split (list notmuch-search-query-string) nil))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun notmuch-search (query &optional oldest-first target-thread target-position)
|
(defun notmuch-search (query &optional oldest-first target-thread target-line)
|
||||||
"Run \"notmuch search\" with the given query string and display results.
|
"Run \"notmuch search\" with the given query string and display results.
|
||||||
|
|
||||||
The optional parameters are used as follows:
|
The optional parameters are used as follows:
|
||||||
|
@ -1557,11 +1558,8 @@ The optional parameters are used as follows:
|
||||||
oldest-first: A Boolean controlling the sort order of returned threads
|
oldest-first: A Boolean controlling the sort order of returned threads
|
||||||
target-thread: A thread ID (with the thread: prefix) that will be made
|
target-thread: A thread ID (with the thread: prefix) that will be made
|
||||||
current if it appears in the search results.
|
current if it appears in the search results.
|
||||||
saved-position: If the search results complete, and the target thread is
|
target-line: The line number to move to if the target thread does not
|
||||||
not found in the results, and the point is still at the
|
appear in the search results."
|
||||||
beginning of the buffer, then the point will be moved to
|
|
||||||
the saved position.
|
|
||||||
"
|
|
||||||
(interactive "sNotmuch search: ")
|
(interactive "sNotmuch search: ")
|
||||||
(let ((buffer (get-buffer-create (concat "*notmuch-search-" query "*"))))
|
(let ((buffer (get-buffer-create (concat "*notmuch-search-" query "*"))))
|
||||||
(switch-to-buffer buffer)
|
(switch-to-buffer buffer)
|
||||||
|
@ -1569,7 +1567,7 @@ The optional parameters are used as follows:
|
||||||
(set 'notmuch-search-query-string query)
|
(set 'notmuch-search-query-string query)
|
||||||
(set 'notmuch-search-oldest-first oldest-first)
|
(set 'notmuch-search-oldest-first oldest-first)
|
||||||
(set 'notmuch-search-target-thread target-thread)
|
(set 'notmuch-search-target-thread target-thread)
|
||||||
(set 'notmuch-search-target-position target-position)
|
(set 'notmuch-search-target-line target-line)
|
||||||
(let ((proc (get-buffer-process (current-buffer)))
|
(let ((proc (get-buffer-process (current-buffer)))
|
||||||
(inhibit-read-only t))
|
(inhibit-read-only t))
|
||||||
(if proc
|
(if proc
|
||||||
|
@ -1595,12 +1593,12 @@ the new search results, then point will be placed on the same
|
||||||
thread. Otherwise, point will be moved to attempt to be in the
|
thread. Otherwise, point will be moved to attempt to be in the
|
||||||
same relative position within the new buffer."
|
same relative position within the new buffer."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((here (point))
|
(let ((target-line (line-number-at-pos))
|
||||||
(oldest-first notmuch-search-oldest-first)
|
(oldest-first notmuch-search-oldest-first)
|
||||||
(thread (notmuch-search-find-thread-id))
|
(target-thread (notmuch-search-find-thread-id))
|
||||||
(query notmuch-search-query-string))
|
(query notmuch-search-query-string))
|
||||||
(kill-this-buffer)
|
(kill-this-buffer)
|
||||||
(notmuch-search query oldest-first thread here)
|
(notmuch-search query oldest-first target-thread target-line)
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue