From 27cf1dab21b161bd18c22c072cbd70b5b0210b68 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Nov 2017 20:22:51 -0500 Subject: [PATCH] Conditionally re-enable hl-line upon exiting visual mode Addresses #281 --- core/core-ui.el | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index 7d965686e..44530d20d 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -304,12 +304,19 @@ local value, whether or not it's permanent-local. Therefore, we cycle global-hl-line-sticky-flag nil) (after! evil + (defvar-local doom-buffer-hl-line-mode nil) + ;; Disable `hl-line' in evil-visual mode (temporarily). `hl-line' can make ;; the selection region harder to see while in evil visual mode. - (defun doom|disable-hl-line () (hl-line-mode -1)) + (defun doom|disable-hl-line () + (when hl-line-mode + (setq doom-buffer-hl-line-mode t) + (hl-line-mode -1))) + (defun doom|enable-hl-line-maybe () + (if doom-buffer-hl-line-mode (hl-line-mode +1))) (add-hook 'evil-visual-state-entry-hook #'doom|disable-hl-line) - (add-hook 'evil-visual-state-exit-hook #'hl-line-mode))) + (add-hook 'evil-visual-state-exit-hook #'doom|enable-hl-line-maybe))) ;; Helps us distinguish stacked delimiter pairs. Especially in parentheses-drunk ;; languages like Lisp.