diff options
author | Vasilij Schneidermann <mail@vasilij.de> | 2023-04-21 17:47:46 +0200 |
---|---|---|
committer | Vasilij Schneidermann <mail@vasilij.de> | 2023-04-21 17:48:03 +0200 |
commit | 58c35e677e11f5c04a702b42ac753c80c8955089 (patch) | |
tree | c3062fa8381bc00dc110fd08fdef4185fba49124 /nov.el | |
parent | ca8d250bfbe687eff7d8bc18708f6968e719ec65 (diff) |
Add multi-isearch interop
This implements the much requested feature of C-s behaving similarly
to how it does in info buffers. Many thanks to Madhu for discovering
multi-isearch.el (AKA misearch).
Diffstat (limited to 'nov.el')
-rw-r--r-- | nov.el | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -991,5 +991,29 @@ See also `nov-bookmark-make-record'." (setq imenu-create-index-function 'nov-imenu-create-index)) (add-hook 'nov-mode-hook 'nov-imenu-setup) + +;;; multi-isearch interop + +(defun nov-misearch-next-buffer (buffer wrap) + (if isearch-forward + (cond + ((< nov-documents-index (1- (length nov-documents))) + (nov-goto-document (1+ nov-documents-index)) + (current-buffer)) + (wrap + (nov-goto-document 0) + nil)) + (cond + ((> nov-documents-index 0) + (nov-goto-document (1- nov-documents-index)) + (current-buffer)) + (wrap + (nov-goto-document (1- (length nov-documents))) + nil)))) + +(defun nov-misearch-setup () + (setq-local multi-isearch-next-buffer-function #'nov-misearch-next-buffer)) +(add-hook 'nov-mode-hook #'nov-misearch-setup) + (provide 'nov) ;;; nov.el ends here |