2017-06-08 11:47:56 +02:00
|
|
|
;;; feature/syntax-checker/config.el -*- lexical-binding: t; -*-
|
2017-02-13 05:51:36 -05:00
|
|
|
|
2018-01-15 00:43:17 -05:00
|
|
|
;; Since Doom doesn't use `package-initialize', pkg-info won't get autoloaded
|
|
|
|
;; when `flycheck-version' needs it, so we need this:
|
2018-01-13 15:09:09 -05:00
|
|
|
(autoload 'pkg-info-version-info "pkg-info")
|
|
|
|
|
2017-02-23 00:06:12 -05:00
|
|
|
(def-package! flycheck
|
2017-02-13 05:51:36 -05:00
|
|
|
:commands (flycheck-mode flycheck-list-errors flycheck-buffer)
|
|
|
|
:config
|
2018-01-06 01:10:33 -05:00
|
|
|
;; Emacs feels snappier without checks on newline
|
|
|
|
(setq flycheck-check-syntax-automatically '(save idle-change mode-enabled))
|
2017-02-13 05:51:36 -05:00
|
|
|
|
2017-04-17 02:17:10 -04:00
|
|
|
(after! evil
|
|
|
|
(defun +syntax-checkers|flycheck-buffer ()
|
2018-01-06 01:10:33 -05:00
|
|
|
"Flycheck buffer on ESC in normal mode."
|
2017-05-25 12:22:05 +02:00
|
|
|
(when flycheck-mode
|
|
|
|
(ignore-errors (flycheck-buffer))
|
|
|
|
nil))
|
2018-01-06 02:38:34 -05:00
|
|
|
(add-hook 'doom-escape-hook #'+syntax-checkers|flycheck-buffer t)
|
2018-01-06 01:10:33 -05:00
|
|
|
|
|
|
|
;; With the option of flychecking the buffer on escape, so we don't need
|
|
|
|
;; auto-flychecking on idle-change:
|
|
|
|
(delq 'idle-change flycheck-check-syntax-automatically)))
|
2017-02-13 05:51:36 -05:00
|
|
|
|
|
|
|
|
2018-01-06 01:10:33 -05:00
|
|
|
;; Long story short, `flycheck-popup-tip' works everywhere but only looks *ok*.
|
|
|
|
;; `flycheck-pos-tip' looks great, but only in GUI Emacs on Linux. So we want:
|
|
|
|
;;
|
|
|
|
;; + GUI Emacs (Linux): pos-tip
|
|
|
|
;; + GUI Emacs (MacOS): popup-tip
|
|
|
|
;; + tty Emacs (anywhere): popup-tip
|
|
|
|
|
2017-03-19 22:50:52 -04:00
|
|
|
(def-package! flycheck-pos-tip
|
2018-01-06 01:10:33 -05:00
|
|
|
:commands (flycheck-pos-tip-mode)
|
2017-02-13 05:51:36 -05:00
|
|
|
:config
|
|
|
|
(setq flycheck-pos-tip-timeout 10
|
2018-01-06 01:10:33 -05:00
|
|
|
;; fallback to flycheck-popup-tip in terminal Emacs
|
|
|
|
flycheck-pos-tip-display-errors-tty-function
|
|
|
|
#'flycheck-popup-tip-show-popup
|
2018-01-12 16:11:18 +05:30
|
|
|
flycheck-display-errors-delay 0.7))
|
2018-01-05 14:43:44 -05:00
|
|
|
|
|
|
|
(def-package! flycheck-popup-tip
|
2018-01-06 01:10:33 -05:00
|
|
|
:commands (flycheck-popup-tip-mode flycheck-popup-tip-show-popup))
|
2018-01-05 14:43:44 -05:00
|
|
|
|
2018-01-06 01:10:33 -05:00
|
|
|
(after! flycheck
|
|
|
|
(if IS-MAC
|
2018-01-09 12:00:35 +08:00
|
|
|
(flycheck-popup-tip-mode)
|
2018-01-06 01:10:33 -05:00
|
|
|
(flycheck-pos-tip-mode)))
|