Move nav-flash from ui/doom to ui/nav-flash (#92)

This commit is contained in:
Henrik Lissner 2017-06-04 16:45:14 +02:00
parent 3c8e70c0d0
commit 084c7be50f
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
7 changed files with 61 additions and 40 deletions

View file

@ -0,0 +1,21 @@
* :ui nav-flash
This module uses ~nav-flash~ to flash the line around the cursor after any motion command that might reasonably send the cursor somewhere the eyes can't follow.
#+begin_quote
Tremendously helpful on a 30" 2560x1600 display.
#+end_quote
** Install
This module has no other dependencies.
** Configure
By default, ~nav-flash~ will be triggered whenever ~recenter~ is called. =:feature jump= attaches ~recenter~ to various hooks:
#+BEGIN_SRC emacs-lisp
(add-hook!
'(imenu-after-jump-hook evil-jumps-post-jump-hook
counsel-grep-post-action-hook dumb-jump-after-jump-hook)
#'recenter)
#+END_SRC

View file

@ -0,0 +1,35 @@
;;; ui/nav-flash/config.el
(def-package! nav-flash
:commands nav-flash-show
:init
(defun +doom*blink-cursor-maybe (orig-fn &rest args)
"Blink current line if the window has moved."
(let ((point (save-excursion (goto-char (window-start))
(point-marker))))
(apply orig-fn args)
(unless (equal point
(save-excursion (goto-char (window-start))
(point-marker)))
(+doom/blink-cursor))))
(defun +doom/blink-cursor (&rest _)
"Blink current line using `nav-flash'."
(interactive)
(unless (minibufferp)
(nav-flash-show)
;; only show in the current window
(overlay-put compilation-highlight-overlay 'window (selected-window))))
;; NOTE In :feature jump `recenter' is hooked to a bunch of jumping commands,
;; which will trigger nav-flash.
(advice-add #'windmove-do-window-select :around #'+doom*blink-cursor-maybe)
(advice-add #'recenter :around #'+doom*blink-cursor-maybe)
(after! evil
(advice-add #'evil-window-top :after #'+doom/blink-cursor)
(advice-add #'evil-window-middle :after #'+doom/blink-cursor)
(advice-add #'evil-window-bottom :after #'+doom/blink-cursor)))

View file

@ -0,0 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; ui/nav-flash/packages.el
(package! nav-flash)