diff --git a/layers/+config-files/puppet/packages.el b/layers/+config-files/puppet/packages.el index 3ceef946a..c2d035c9e 100644 --- a/layers/+config-files/puppet/packages.el +++ b/layers/+config-files/puppet/packages.el @@ -38,4 +38,4 @@ (spacemacs|add-company-hook puppet-mode)) (defun puppet/post-init-flycheck () - (spacemacs/add-flycheck-hook 'puppet-mode-hook)) + (spacemacs/add-flycheck-hook 'puppet-mode)) diff --git a/layers/+frameworks/react/packages.el b/layers/+frameworks/react/packages.el index fb0cac6bc..2a5c9834d 100644 --- a/layers/+frameworks/react/packages.el +++ b/layers/+frameworks/react/packages.el @@ -41,7 +41,7 @@ (add-hook 'react-mode-hook #'react/disable-jshint)))) (defun react/post-init-flycheck () - (spacemacs/add-flycheck-hook 'react-mode-hook)) + (spacemacs/add-flycheck-hook 'react-mode)) (defun react/post-init-js-doc () (add-hook 'react-mode-hook 'spacemacs/js-doc-require) diff --git a/layers/+lang/c-c++/packages.el b/layers/+lang/c-c++/packages.el index 23520b56d..87cb4ddcc 100644 --- a/layers/+lang/c-c++/packages.el +++ b/layers/+lang/c-c++/packages.el @@ -89,8 +89,8 @@ :init (push 'company-c-headers company-backends-c-mode-common)))) (defun c-c++/post-init-flycheck () - (dolist (hook '(c-mode-hook c++-mode-hook)) - (spacemacs/add-flycheck-hook hook)) + (dolist (mode '(c-mode c++-mode)) + (spacemacs/add-flycheck-hook mode)) (when c-c++-enable-clang-support (spacemacs/add-to-hooks 'c-c++/load-clang-args '(c-mode-hook c++-mode-hook)))) diff --git a/layers/+lang/d/packages.el b/layers/+lang/d/packages.el index 619c3c92a..e381364b6 100644 --- a/layers/+lang/d/packages.el +++ b/layers/+lang/d/packages.el @@ -24,7 +24,7 @@ (when (configuration-layer/layer-usedp 'syntax-checking) (defun d/post-init-flycheck () - (spacemacs/add-flycheck-hook 'd-mode-hook)) + (spacemacs/add-flycheck-hook 'd-mode)) (defun d/init-flycheck-dmd-dub () (use-package flycheck-dmd-dub :defer t :init (add-hook 'd-mode-hook 'flycheck-dmd-dub-set-include-path)))) diff --git a/layers/+lang/emacs-lisp/packages.el b/layers/+lang/emacs-lisp/packages.el index 02b2cf3bd..1be736ca8 100644 --- a/layers/+lang/emacs-lisp/packages.el +++ b/layers/+lang/emacs-lisp/packages.el @@ -128,7 +128,7 @@ (defun emacs-lisp/post-init-flycheck () ;; Don't activate flycheck by default in elisp ;; because of too much false warnings - ;; (spacemacs/add-flycheck-hook 'emacs-lisp-mode-hook) + ;; (spacemacs/add-flycheck-hook 'emacs-lisp-mode) ;; Make flycheck recognize packages in loadpath ;; i.e (require 'company) will not give an error now diff --git a/layers/+lang/erlang/packages.el b/layers/+lang/erlang/packages.el index 3f59b92a3..f38deab54 100644 --- a/layers/+lang/erlang/packages.el +++ b/layers/+lang/erlang/packages.el @@ -41,4 +41,4 @@ (require 'erlang-start))) (defun erlang/post-init-flycheck () - (spacemacs/add-flycheck-hook 'erlang-mode-hook)) + (spacemacs/add-flycheck-hook 'erlang-mode)) diff --git a/layers/+lang/go/packages.el b/layers/+lang/go/packages.el index 6c0e5cdad..7c1fee08b 100644 --- a/layers/+lang/go/packages.el +++ b/layers/+lang/go/packages.el @@ -10,7 +10,7 @@ )) (defun go/post-init-flycheck () - (spacemacs/add-flycheck-hook 'go-mode-hook)) + (spacemacs/add-flycheck-hook 'go-mode)) (defun go/init-go-mode() (when (memq window-system '(mac ns x)) diff --git a/layers/+lang/haskell/packages.el b/layers/+lang/haskell/packages.el index af0fbfa81..202c0eaf3 100644 --- a/layers/+lang/haskell/packages.el +++ b/layers/+lang/haskell/packages.el @@ -37,7 +37,7 @@ (spacemacs/set-leader-keys-for-major-mode 'haskell-mode "hf" 'helm-hoogle)))) (defun haskell/post-init-flycheck () - (spacemacs/add-flycheck-hook 'haskell-mode-hook)) + (spacemacs/add-flycheck-hook 'haskell-mode)) (when (configuration-layer/layer-usedp 'syntax-checking) (defun haskell/init-flycheck-haskell () diff --git a/layers/+lang/html/packages.el b/layers/+lang/html/packages.el index 3fec161f1..f10f39748 100644 --- a/layers/+lang/html/packages.el +++ b/layers/+lang/html/packages.el @@ -99,14 +99,14 @@ (add-hook 'web-mode-hook 'turn-on-evil-matchit-mode)) (defun html/post-init-flycheck () - (dolist (hook '(haml-mode-hook - jade-mode-hook - less-mode-hook - sass-mode-hook - scss-mode-hook - slim-mode-hook - web-mode-hook)) - (spacemacs/add-flycheck-hook hook))) + (dolist (mode '(haml-mode + jade-mode + less-mode + sass-mode + scss-mode + slim-mode + web-mode)) + (spacemacs/add-flycheck-hook mode))) (defun html/init-haml-mode () (use-package haml-mode diff --git a/layers/+lang/javascript/packages.el b/layers/+lang/javascript/packages.el index 43db5646e..bb0b5c943 100644 --- a/layers/+lang/javascript/packages.el +++ b/layers/+lang/javascript/packages.el @@ -57,8 +57,8 @@ (push 'company-tern company-backends-js2-mode)))) (defun javascript/post-init-flycheck () - (dolist (hook '(coffee-mode-hook js2-mode-hook json-mode-hook)) - (spacemacs/add-flycheck-hook hook))) + (dolist (mode '(coffee-mode js2-mode json-mode)) + (spacemacs/add-flycheck-hook mode))) (defun javascript/init-js-doc () (use-package js-doc diff --git a/layers/+lang/latex/packages.el b/layers/+lang/latex/packages.el index b4d44d5ca..dd31f4e8d 100644 --- a/layers/+lang/latex/packages.el +++ b/layers/+lang/latex/packages.el @@ -157,7 +157,7 @@ (add-hook 'LaTeX-mode-hook 'evil-matchit-mode)) (defun latex/post-init-flycheck () - (spacemacs/add-flycheck-hook 'LaTeX-mode-hook)) + (spacemacs/add-flycheck-hook 'LaTeX-mode)) (defun latex/post-init-flyspell () (spell-checking/add-flyspell-hook 'LaTeX-mode-hook)) diff --git a/layers/+lang/lua/packages.el b/layers/+lang/lua/packages.el index b7430ef0e..445b45bc6 100644 --- a/layers/+lang/lua/packages.el +++ b/layers/+lang/lua/packages.el @@ -6,7 +6,7 @@ )) (defun lua/post-init-flycheck () - (spacemacs/add-flycheck-hook 'lua-mode-hook)) + (spacemacs/add-flycheck-hook 'lua-mode)) (defun lua/init-lua-mode () (use-package lua-mode diff --git a/layers/+lang/nim/packages.el b/layers/+lang/nim/packages.el index 27e606773..1ef0a4471 100644 --- a/layers/+lang/nim/packages.el +++ b/layers/+lang/nim/packages.el @@ -8,7 +8,7 @@ (spacemacs|add-company-hook nim-mode)) (defun nim/post-init-flycheck () - (spacemacs/add-flycheck-hook 'nim-mode-hook)) + (spacemacs/add-flycheck-hook 'nim-mode)) (defun nim/init-flycheck-nim () (use-package flycheck-nim diff --git a/layers/+lang/ocaml/packages.el b/layers/+lang/ocaml/packages.el index 7e425e707..27c9ef893 100644 --- a/layers/+lang/ocaml/packages.el +++ b/layers/+lang/ocaml/packages.el @@ -27,7 +27,7 @@ (when (configuration-layer/layer-usedp 'syntax-checking) (defun ocaml/post-init-flycheck () - (spacemacs/add-flycheck-hook 'merlin-mode-hook)) + (spacemacs/add-flycheck-hook 'merlin-mode)) (defun ocaml/init-flycheck-ocaml () (use-package flycheck-ocaml :if (configuration-layer/package-usedp 'flycheck) diff --git a/layers/+lang/python/packages.el b/layers/+lang/python/packages.el index 17493e65f..7adfe7242 100644 --- a/layers/+lang/python/packages.el +++ b/layers/+lang/python/packages.el @@ -94,7 +94,7 @@ (add-hook `python-mode-hook `turn-on-evil-matchit-mode)) (defun python/post-init-flycheck () - (spacemacs/add-flycheck-hook 'python-mode-hook)) + (spacemacs/add-flycheck-hook 'python-mode)) (when (configuration-layer/layer-usedp 'spacemacs-helm) (defun python/pre-init-helm-cscope () diff --git a/layers/+lang/ruby/packages.el b/layers/+lang/ruby/packages.el index c236ea781..b4144f048 100644 --- a/layers/+lang/ruby/packages.el +++ b/layers/+lang/ruby/packages.el @@ -88,8 +88,8 @@ (add-hook hook `turn-on-evil-matchit-mode))) (defun ruby/post-init-flycheck () - (spacemacs/add-flycheck-hook 'ruby-mode-hook) - (spacemacs/add-flycheck-hook 'enh-ruby-mode-hook)) + (spacemacs/add-flycheck-hook 'ruby-mode) + (spacemacs/add-flycheck-hook 'enh-ruby-mode)) (defun ruby/post-init-popwin () (push '("*rspec-compilation*" :dedicated t :position bottom :stick t :noselect t :height 0.4) diff --git a/layers/+lang/rust/packages.el b/layers/+lang/rust/packages.el index d87b3ebc8..1bec3bc05 100644 --- a/layers/+lang/rust/packages.el +++ b/layers/+lang/rust/packages.el @@ -22,7 +22,7 @@ (when (configuration-layer/layer-usedp 'syntax-checking) (defun rust/post-init-flycheck () - (spacemacs/add-flycheck-hook 'rust-mode-hook)) + (spacemacs/add-flycheck-hook 'rust-mode)) (defun rust/init-flycheck-rust () (use-package flycheck-rust diff --git a/layers/syntax-checking/README.org b/layers/syntax-checking/README.org index fdeb5c305..d6751401b 100644 --- a/layers/syntax-checking/README.org +++ b/layers/syntax-checking/README.org @@ -40,6 +40,10 @@ toggled off with ~SPC t s~. You can default this to off by setting the variable '((syntax-checking :variables syntax-checking-enable-by-default nil))) #+END_SRC +If you want more fine-grained control, you can configure the variable +=flycheck-global-modes= instead. Note that this variable should be manipulated +in =dotspacemacs/user-config=. + * Key Bindings | Key Binding | Description | diff --git a/layers/syntax-checking/funcs.el b/layers/syntax-checking/funcs.el index 51cdcf945..6001a1127 100644 --- a/layers/syntax-checking/funcs.el +++ b/layers/syntax-checking/funcs.el @@ -9,8 +9,10 @@ ;; ;;; License: GPLv3 -(defun spacemacs/add-flycheck-hook (hook) - "Add flycheck to the given HOOK, if -`syntax-checking-enable-by-default' is true." - (when syntax-checking-enable-by-default - (add-hook hook 'flycheck-mode))) +(defun spacemacs/add-flycheck-hook (mode) + "Use flycheck in MODE by default, if `syntax-checking-enable-by-default' is +true." + (when (and syntax-checking-enable-by-default + (listp flycheck-global-modes + (not (eq 'not (car flycheck-global-modes))))) + (push mode flycheck-global-modes))) diff --git a/layers/syntax-checking/packages.el b/layers/syntax-checking/packages.el index 7c3ca669a..4fab9262c 100644 --- a/layers/syntax-checking/packages.el +++ b/layers/syntax-checking/packages.el @@ -18,20 +18,23 @@ (defun syntax-checking/init-flycheck () (use-package flycheck - :defer t :init (progn - (setq flycheck-standard-error-navigation nil) + (setq flycheck-standard-error-navigation nil + flycheck-global-modes nil) + (spacemacs|add-toggle syntax-checking :status flycheck-mode :on (flycheck-mode) :off (flycheck-mode -1) :documentation "Enable error and syntax checking." - :evil-leader "ts")) - :config - (progn + :evil-leader "ts") + (spacemacs|diminish flycheck-mode " ⓢ" " s") + (when syntax-checking-enable-by-default + (global-flycheck-mode 1)) + ;; Custom fringe indicator (when (fboundp 'define-fringe-bitmap) (define-fringe-bitmap 'my-flycheck-fringe-indicator