Change flycheck initialization strategy

Initialize it globally and turn it off where needed, instead of enabling
it on demand. Also fixes void-function: flycheck-mode errors when
:feature syntax-checker is disabled. This is experimental.

Indirectly fixes #710
This commit is contained in:
Henrik Lissner 2018-06-21 15:54:36 +02:00
parent dbc7b667cf
commit e05d7cfee0
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
24 changed files with 26 additions and 49 deletions

View file

@ -2,6 +2,7 @@
(def-package! flycheck
:commands (flycheck-list-errors flycheck-buffer)
:after-call (after-find-file doom-before-switch-buffer)
:config
;; Emacs feels snappier without checks on newline
(setq flycheck-check-syntax-automatically '(save idle-change mode-enabled))
@ -13,7 +14,9 @@
(ignore-errors (flycheck-buffer))
nil))
(add-hook 'doom-escape-hook #'+syntax-checkers|flycheck-buffer t)
(add-hook 'evil-insert-state-exit-hook #'+syntax-checkers|flycheck-buffer)))
(add-hook 'evil-insert-state-exit-hook #'+syntax-checkers|flycheck-buffer))
(global-flycheck-mode +1))
(def-package! flycheck-popup-tip

View file

@ -165,9 +165,7 @@ compilation database is present in the project.")
(def-package! flycheck-irony
:when (featurep! :feature syntax-checker)
:config
(add-hook 'irony-mode-hook #'flycheck-mode)
(flycheck-irony-setup))
:config (flycheck-irony-setup))
(def-package! company-irony
:when (featurep! :completion company)

View file

@ -14,8 +14,7 @@
(def-package! flycheck-crystal
:when (featurep! :feature syntax-checker)
:after crystal-mode
:config (add-hook 'crystal-mode-hook #'flycheck-mode))
:after crystal-mode)
(def-package! inf-crystal :commands crystal-switch-to-inf)

View file

@ -10,8 +10,6 @@
(setq omnisharp-auto-complete-want-documentation nil
omnisharp-cache-directory (concat doom-cache-dir "omnisharp"))
:config
(add-hook 'csharp-mode-hook #'flycheck-mode)
(defun +csharp|cleanup-omnisharp-server ()
"Clean up the omnisharp server once you kill the last csharp-mode buffer."
(unless (doom-buffers-in-mode 'csharp-mode (buffer-list))

View file

@ -31,8 +31,6 @@
(def-package! json-mode
:mode "\\.js\\(?:on\\|[hl]int\\(rc\\)?\\)\\'"
:config
(when (featurep! :feature syntax-checker)
(add-hook 'json-mode-hook #'flycheck-mode))
(set-electric! 'json-mode :chars '(?\n ?: ?{ ?})))
(def-package! vimrc-mode

View file

@ -21,6 +21,5 @@
(def-package! flycheck-elm
:when (featurep! :feature syntax-checker)
:after elm-mode
:init (add-hook 'elm-mode-hook #'flycheck-mode)
:config (add-to-list 'flycheck-checkers 'elm nil #'eq))

View file

@ -23,7 +23,7 @@
;; fontification
rainbow-delimiters-mode highlight-quoted-mode highlight-numbers-mode +emacs-lisp|extra-fontification
;; initialization
+emacs-lisp|init-imenu +emacs-lisp|init-flycheck))
+emacs-lisp|init-imenu +emacs-lisp|disable-flycheck-maybe))
;;
(defun +emacs-lisp|extra-fontification ()
@ -53,13 +53,13 @@
("Variables" "^\\s-*(defvar\\(?:-local\\)?\\s-+\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)+\\)[[:space:]\n]+[^)]" 1)
("Types" "^\\s-*(\\(cl-def\\(?:struct\\|type\\)\\|def\\(?:class\\|face\\|group\\|ine-\\(?:condition\\|error\\|widget\\)\\|package\\|struct\\|t\\(?:\\(?:hem\\|yp\\)e\\)\\)\\)\\s-+'?\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)+\\)" 2))))
(defun +emacs-lisp|init-flycheck ()
"Initialize flycheck-mode if not in emacs.d."
(when (and buffer-file-name
(not (cl-loop for dir in (list doom-emacs-dir doom-private-dir)
(defun +emacs-lisp|disable-flycheck-maybe ()
"Disable flycheck-mode if in emacs.d."
(when (or (not buffer-file-name)
(cl-loop for dir in (list doom-emacs-dir doom-private-dir)
if (file-in-directory-p buffer-file-name dir)
return t)))
(flycheck-mode +1))))
return t))
(flycheck-mode -1))))
;;

View file

@ -16,8 +16,7 @@
(setq gofmt-command goimports))
(when (featurep! :feature syntax-checker)
(setq gofmt-show-errors nil) ; Leave it to flycheck
(add-hook 'go-mode-hook #'flycheck-mode))
(setq gofmt-show-errors nil)) ; Leave it to flycheck
(add-hook 'go-mode-hook #'go-eldoc-setup)
(add-hook! go-mode

View file

@ -5,8 +5,7 @@
:after haskell-mode
:hook (haskell-mode . dante-mode)
:config
(add-hook 'haskell-mode-hook #'interactive-haskell-mode)
(add-hook 'dante-mode-hook #'flycheck-mode))
(add-hook 'haskell-mode-hook #'interactive-haskell-mode))
(def-package! company-ghc

View file

@ -13,7 +13,6 @@ This is necessary because `intero-mode' doesn't do its own error checks."
(message "Couldn't find stack. Refusing to enable intero-mode."))))
(add-hook 'haskell-mode-hook #'+haskell|init-intero)
:config
(add-hook 'intero-mode-hook #'flycheck-mode)
(set-lookup-handlers! 'intero-mode :definition #'intero-goto-definition))

View file

@ -14,8 +14,6 @@
:definition #'meghanada-jump-declaration
:references #'meghanada-reference)
(add-hook 'meghanada-mode-hook #'flycheck-mode)
;;
(def-menu! +java/refactor-menu
"Refactoring commands for `java-mode' buffers."

View file

@ -43,7 +43,7 @@
js2-strict-trailing-comma-warning nil
js2-strict-missing-semi-warning nil)
(add-hook! 'js2-mode-hook #'(flycheck-mode rainbow-delimiters-mode))
(add-hook 'js2-mode-hook #'rainbow-delimiters-mode)
;; Indent switch-case another step
(setq-hook! 'js2-mode-hook js-switch-indent-offset js2-basic-offset)
@ -84,7 +84,7 @@
(after! typescript-mode
(add-hook! 'typescript-mode-hook #'(flycheck-mode rainbow-delimiters-mode))
(add-hook 'typescript-mode-hook #'rainbow-delimiters-mode)
(setq-hook! 'typescript-mode-hook
comment-line-break-function #'js2-line-break)
(set-electric! 'typescript-mode

View file

@ -11,5 +11,4 @@
(def-package! flycheck-ledger
:when (featurep! :feature syntax-checker)
:after ledger-mode
:config (add-hook 'ledger-mode-hook #'flycheck-mode))
:after ledger-mode)

View file

@ -1,8 +1,6 @@
;;; lang/lua/config.el -*- lexical-binding: t; -*-
(after! lua-mode
(add-hook 'lua-mode-hook #'flycheck-mode)
(set-lookup-handlers! 'lua-mode :documentation 'lua-search-documentation)
(set-electric! 'lua-mode :words '("else" "end"))
(set-repl-handler! 'lua-mode #'+lua/repl)

View file

@ -15,6 +15,5 @@ nimsuggest isn't installed."
(def-package! flycheck-nim
:when (featurep! :feature syntax-checker)
:after nim-mode
:config (add-hook 'nimsuggest-mode-hook #'flycheck-mode))
:after nim-mode)

View file

@ -1,14 +1,10 @@
;;; lang/perl/config.el -*- lexical-binding: t; -*-
;; There's also `perl-mode' for perl < 6, which is already set up.
(when (featurep! :feature syntax-checker)
(add-hook 'perl-mode-hook #'flycheck-mode))
(def-package! perl6-detect)
(def-package! flycheck-perl6
:when (featurep! :feature syntax-checker)
:after perl6-mode
:config (add-hook 'perl6-mode-hook #'flycheck-mode))
:after perl6-mode)

View file

@ -11,7 +11,7 @@
:mode "\\.inc$"
:interpreter "php"
:config
(add-hook! php-mode #'(ac-php-core-eldoc-setup flycheck-mode))
(add-hook 'php-mode-hook #'ac-php-core-eldoc-setup)
;; Disable HTML compatibility in php-mode. `web-mode' has superior support for
;; php+html. Use the .phtml

View file

@ -2,8 +2,7 @@
(after! purescript-mode
(add-hook! 'purescript-mode-hook
#'(flycheck-mode
purescript-indentation-mode
#'(purescript-indentation-mode
rainbow-delimiters-mode)))

View file

@ -22,7 +22,7 @@ is loaded.")
python-indent-guess-indent-offset-verbose nil
python-shell-interpreter "python")
:config
(add-hook! 'python-mode-hook #'(flycheck-mode highlight-numbers-mode))
(add-hook 'python-mode-hook #'highlight-numbers-mode)
(set-env! "PYTHONPATH" "PYENV_ROOT")
(set-electric! 'python-mode :chars '(?:))

View file

@ -22,8 +22,6 @@
;; Don't interfere with my custom RET behavior
(define-key ruby-mode-map [?\n] nil)
(add-hook 'ruby-mode-hook #'flycheck-mode)
;; Version management with rbenv
(defun +ruby|add-version-to-modeline ()
"Add version string to the major mode in the modeline."

View file

@ -35,5 +35,5 @@
(def-package! flycheck-rust
:when (featurep! :feature syntax-checker)
:after rust-mode
:config (add-hook! 'rust-mode-hook #'(flycheck-mode flycheck-rust-setup)))
:config (add-hook 'rust-mode-hook #'flycheck-rust-setup))

View file

@ -15,7 +15,7 @@
:mode ("\\.zunit\\'" . sh-mode)
:mode ("/bspwmrc\\'" . sh-mode)
:config
(add-hook! sh-mode #'(flycheck-mode highlight-numbers-mode))
(add-hook 'sh-mode-hook #'highlight-numbers-mode)
(set-electric! 'sh-mode :words '("else" "elif" "fi" "done" "then" "do" "esac" ";;"))
(set-repl-handler! 'sh-mode #'+sh/repl)

View file

@ -11,7 +11,6 @@
(def-package! solidity-flycheck ; included with solidity-mode
:when (featurep! :feature syntax-checker)
:after solidity-mode
:init (add-hook 'solidity-mode-hook #'flycheck-mode)
:config
(setq flycheck-solidity-solc-addstd-contracts t)
(when (funcall flycheck-executable-find solidity-solc-path)

View file

@ -7,7 +7,6 @@
(def-package! flycheck-swift
:when (featurep! :feature syntax-checker)
:after swift-mode
:init (add-hook 'swift-mode-hook #'flycheck-mode)
:config (flycheck-swift-setup))