Transform register-quicknav--last-register into a function.

It accesses the local value of register-quicknav--last-register-v if
register-quicknav-buffer-only is t, the global value otherwise.
This commit is contained in:
tastytea 2020-03-08 04:12:00 +01:00
parent efacea633b
commit 4757e63fcd
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
1 changed files with 18 additions and 5 deletions

View File

@ -87,9 +87,21 @@
:type 'boolean
:group 'register-quicknav)
(defvar register-quicknav--last-register nil
(defvar-local register-quicknav--last-register-v nil
"The last jumped-to position register.")
(defun register-quicknav--last-register (&optional val)
"Return `register-quicknav--last-register-v' or set it if VAL is non-nil.
Use the local value if `register-quicknav-buffer-only' is set and
the global value otherwise."
(if val
(if register-quicknav-buffer-only
(setq register-quicknav--last-register-v val)
(setq-default register-quicknav--last-register-v val))
(if register-quicknav-buffer-only
register-quicknav--last-register-v
(default-value 'register-quicknav--last-register-v))))
(defun register-quicknav--item-file-name (item)
"Return file-name of ITEM.
Works on markers and file-queries."
@ -137,7 +149,7 @@ Works on markers and file-queries."
(defun register-quicknav--jump-to-register (next)
"Jump to next position register if NEXT is t, to previous otherwise."
(let* ((registers (register-quicknav--registers))
(index (cl-position register-quicknav--last-register registers))
(index (cl-position (register-quicknav--last-register) registers))
(stop-searching))
(unless (eq index nil)
(if next
@ -170,9 +182,9 @@ Works on markers and file-queries."
(setq index (- (length registers) 1))
(cl-decf index)))
(register-to-point (car (nth index registers)))
(setq register-quicknav--last-register (nth index registers)))
(register-quicknav--last-register (nth index registers)))
(register-to-point (car (car registers)))
(setq register-quicknav--last-register (car registers)))))
(register-quicknav--last-register (car registers)))))
;;;###autoload
(defun register-quicknav-next-register ()
@ -190,7 +202,8 @@ Works on markers and file-queries."
(defun register-quicknav-clear-current-register ()
"Clear last jumped-to position register from `register-alist'."
(interactive)
(setq register-alist (delq register-quicknav--last-register register-alist)))
(setq register-alist
(delq (register-quicknav--last-register) register-alist)))
(provide 'register-quicknav)
;;; register-quicknav.el ends here