feature/syntax-checker: redesign tooltip support
Use flycheck-posframe in GUI Emacs (26+) and flycheck-popup-tip everywhere else.
This commit is contained in:
parent
da598551a3
commit
afb92a8c7f
3 changed files with 51 additions and 22 deletions
41
modules/feature/syntax-checker/autoload.el
Normal file
41
modules/feature/syntax-checker/autoload.el
Normal file
|
@ -0,0 +1,41 @@
|
|||
;;; feature/syntax-checker/autoload.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defun +syntax-checker-show-popup (errors)
|
||||
"TODO"
|
||||
(if (and EMACS26+ (display-graphic-p))
|
||||
(flycheck-posframe-show-posframe errors)
|
||||
(flycheck-popup-tip-show-popup errors)))
|
||||
|
||||
(defun +syntax-checker-cleanup-popup ()
|
||||
"TODO"
|
||||
(when (display-graphic-p)
|
||||
(flycheck-popup-tip-delete-popup)))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode +syntax-checker-popup-mode
|
||||
"TODO"
|
||||
:lighter nil
|
||||
:group 'doom
|
||||
(let ((hooks '(post-command-hook focus-out-hook)))
|
||||
(cond
|
||||
;; Use our display function and remember the old one but only if we haven't
|
||||
;; yet configured it, to avoid activating twice.
|
||||
((and +syntax-checker-popup-mode
|
||||
(not (eq flycheck-display-errors-function
|
||||
#'+syntax-checker-show-popup)))
|
||||
(setq flycheck-popup-tip-old-display-function
|
||||
flycheck-display-errors-function
|
||||
flycheck-display-errors-function
|
||||
#'+syntax-checker-show-popup)
|
||||
(dolist (hook hooks)
|
||||
(add-hook hook #'+syntax-checker-cleanup-popup nil t)))
|
||||
;; Reset the display function and remove ourselves from all hooks but only
|
||||
;; if the mode is still active.
|
||||
((and (not +syntax-checker-popup-mode)
|
||||
(eq flycheck-display-errors-function
|
||||
#'+syntax-checker-show-popup))
|
||||
(setq flycheck-display-errors-function
|
||||
flycheck-popup-tip-old-display-function
|
||||
flycheck-popup-tip-old-display-function nil)
|
||||
(dolist (hook hooks)
|
||||
(remove-hook hook '+syntax-checker-cleanup-popup t))))))
|
Loading…
Add table
Add a link
Reference in a new issue