branch: master commit a526e86e5ad9f4cda7bb9ab4b57c000b1d99bd22 Author: Will Maier <wcma...@gmail.com> Commit: Will Maier <wcma...@gmail.com>
Refactor swiper-font-lock-ensure - expose the list of misbehaving major modes - add swiper-font-lock-ensure-p predicate No change in behavior. --- swiper.el | 68 ++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/swiper.el b/swiper.el index 280e736..e76d68f 100644 --- a/swiper.el +++ b/swiper.el @@ -199,38 +199,46 @@ (with-ivy-window (recenter-top-bottom arg))) +(defvar swiper-font-lock-exclude + '(package-menu-mode + gnus-summary-mode + gnus-article-mode + gnus-group-mode + emms-playlist-mode + emms-stream-mode + erc-mode + org-agenda-mode + dired-mode + jabber-chat-mode + elfeed-search-mode + elfeed-show-mode + fundamental-mode + Man-mode + woman-mode + mu4e-view-mode + mu4e-headers-mode + help-mode + debbugs-gnu-mode + occur-mode + occur-edit-mode + bongo-mode + bongo-library-mode + bongo-playlist-mode + eww-mode + twittering-mode + vc-dir-mode + w3m-mode) + "List of major-modes that are incompatible with font-lock-ensure.") + +(defun swiper-font-lock-ensure-p () + "Return non-nil if we should font-lock-ensure." + (or (derived-mode-p 'magit-mode) + (bound-and-true-p magit-blame-mode) + (memq major-mode swiper-font-lock-exclude))) + (defun swiper-font-lock-ensure () "Ensure the entired buffer is highlighted." - (unless (or (derived-mode-p 'magit-mode) - (bound-and-true-p magit-blame-mode) - (memq major-mode '(package-menu-mode - gnus-summary-mode - gnus-article-mode - gnus-group-mode - emms-playlist-mode - emms-stream-mode - erc-mode - org-agenda-mode - dired-mode - jabber-chat-mode - elfeed-search-mode - elfeed-show-mode - fundamental-mode - Man-mode - woman-mode - mu4e-view-mode - mu4e-headers-mode - help-mode - debbugs-gnu-mode - occur-mode - occur-edit-mode - bongo-mode - bongo-library-mode - bongo-playlist-mode - eww-mode - twittering-mode - vc-dir-mode - w3m-mode))) + (unless (swiper-font-lock-ensure-p) (unless (> (buffer-size) 100000) (if (fboundp 'font-lock-ensure) (font-lock-ensure)