2015-10-30 11:20:58 +00:00
|
|
|
#+TITLE: Syntax Checking layer
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2019-05-02 21:49:30 +00:00
|
|
|
#+TAGS: checker|layer
|
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
[[file:img/flycheck.png]]
|
|
|
|
|
2019-05-07 20:05:06 +00:00
|
|
|
* Table of Contents :TOC_5_gh:noexport:
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#description][Description]]
|
2017-10-04 20:45:43 +00:00
|
|
|
- [[#features][Features:]]
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#install][Install]]
|
|
|
|
- [[#layer][Layer]]
|
|
|
|
- [[#enablingdisabling-tooltips][Enabling/Disabling tooltips]]
|
|
|
|
- [[#disabling-by-default][Disabling by default]]
|
2020-02-01 23:57:39 +00:00
|
|
|
- [[#enable-flycheck-globally][Enable flycheck globally]]
|
2020-06-07 21:03:46 +00:00
|
|
|
- [[#enable-support-for-traditional-error-navigation][Enable support for traditional error navigation]]
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#bitmaps][Bitmaps]]
|
2020-07-30 14:59:00 +00:00
|
|
|
- [[#auto-hide-tooltips][Auto hide tooltips]]
|
2018-12-05 03:03:03 +00:00
|
|
|
- [[#key-bindings][Key bindings]]
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Description
|
2018-08-12 18:15:59 +00:00
|
|
|
This layer adds on the fly syntax checking to all supported language layers.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2017-10-04 20:45:43 +00:00
|
|
|
** Features:
|
2018-08-12 18:15:59 +00:00
|
|
|
- Support for automatic syntax checking with [[http://www.flycheck.org/][Flycheck]] for various language layers
|
|
|
|
- Tooltip syntax errors with =popwin=
|
2017-10-04 20:45:43 +00:00
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
* Install
|
|
|
|
** Layer
|
2016-01-06 05:21:55 +00:00
|
|
|
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
|
|
|
|
add =syntax-checking= to the existing =dotspacemacs-configuration-layers= list in this
|
|
|
|
file.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2018-08-12 18:15:59 +00:00
|
|
|
As this is a support layer you will also have to install at least one supported language
|
|
|
|
layer for it to have any effect.
|
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
** Enabling/Disabling tooltips
|
|
|
|
By default tooltips are enabled and used whenever it is possible.
|
|
|
|
You can disable them by setting the variable =syntax-checking-enable-tooltips=
|
|
|
|
to =nil=:
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
2018-09-19 03:54:47 +00:00
|
|
|
(setq-default dotspacemacs-configuration-layers
|
|
|
|
'((syntax-checking :variables syntax-checking-enable-tooltips nil)))
|
2015-06-10 16:44:30 +00:00
|
|
|
#+END_SRC
|
|
|
|
|
2015-08-28 11:02:20 +00:00
|
|
|
** Disabling by default
|
2017-01-22 15:58:04 +00:00
|
|
|
By default, syntax-checking is enabled in all available major modes (except for
|
|
|
|
=emacs-lisp-mode=) and may be toggled off with ~SPC t s~. You can default this to off
|
|
|
|
by setting the variable =syntax-checking-enable-by-default= to =nil=:
|
2015-08-28 11:02:20 +00:00
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
2018-09-19 03:54:47 +00:00
|
|
|
(setq-default dotspacemacs-configuration-layers
|
|
|
|
'((syntax-checking :variables syntax-checking-enable-by-default nil)))
|
2015-08-28 11:02:20 +00:00
|
|
|
#+END_SRC
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2016-01-27 20:08:25 +00:00
|
|
|
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=.
|
|
|
|
|
2020-02-01 23:57:39 +00:00
|
|
|
** Enable flycheck globally
|
|
|
|
Normally Spacemacs goes a long mile to enable syntax checking only where it
|
|
|
|
makes sense. If syntax checking support is missing it is normally only a
|
|
|
|
matter of declaring it in the layer. The best approach in this case is
|
|
|
|
to open an issue and ask for syntax checking support.
|
|
|
|
|
|
|
|
Some guides on the web suggest to enable flycheck globally by setting
|
|
|
|
=(global-flycheck-mode)= in your =dotspacemacs/user-config=.
|
|
|
|
This is neither necessary nor is it good for the layer system.
|
|
|
|
In the contrary by doing so the layer system cannot longer decide for
|
|
|
|
which modes activating flycheck would bring any useful outcome.
|
|
|
|
This may result in loading slow or not properly configured checkers
|
|
|
|
as well as break some of the more advanced configuration settings
|
|
|
|
of the layer system.
|
|
|
|
|
2020-06-07 21:03:46 +00:00
|
|
|
** Enable support for traditional error navigation
|
|
|
|
By default spacemacs takes care to call the right function to jump
|
|
|
|
to the next or previous error. However if wished flycheck can also
|
|
|
|
override =next-error= and =previous-error= respectively allowing
|
|
|
|
to use alternative general emacs bindings instead of the spacemacs
|
|
|
|
specific ones. To do so set =syntax-checking-use-standard-error-navigation=
|
|
|
|
to non-nil.
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
|
(setq-default dotspacemacs-configuration-layers
|
|
|
|
'((syntax-checking :variables syntax-checking-use-standard-error-navigation t)))
|
|
|
|
#+END_SRC
|
|
|
|
|
2016-08-13 17:51:29 +00:00
|
|
|
** Bitmaps
|
|
|
|
If the original flycheck fringe bitmaps are more to your liking, you can set the
|
|
|
|
variable =syntax-checking-use-original-bitmaps= to =t=:
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
2018-09-19 03:54:47 +00:00
|
|
|
(setq-default dotspacemacs-configuration-layers
|
|
|
|
'((syntax-checking :variables syntax-checking-use-original-bitmaps t)))
|
2016-08-13 17:51:29 +00:00
|
|
|
#+END_SRC
|
|
|
|
|
2020-07-30 14:59:00 +00:00
|
|
|
** Auto hide tooltips
|
|
|
|
You can set time in seconds after which tooltips are automatically hidden by setting
|
|
|
|
the variable =syntax-checking-auto-hide-tooltips= to a positive number of seconds.
|
|
|
|
|
|
|
|
Default value of =syntax-checking-auto-hide-tooltips= is =nil=, and in that case tooltips
|
|
|
|
are kept open until the cursor is moved.
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
|
(setq-default dotspacemacs-configuration-layers
|
|
|
|
'((syntax-checking :variables syntax-checking-auto-hide-tooltips 10)))
|
|
|
|
#+END_SRC
|
|
|
|
|
2018-12-05 03:03:03 +00:00
|
|
|
* Key bindings
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2018-12-05 03:03:03 +00:00
|
|
|
| Key binding | Description |
|
2016-01-21 19:13:50 +00:00
|
|
|
|-------------+--------------------------------------------------------------|
|
2017-05-30 09:35:33 +00:00
|
|
|
| ~SPC e b~ | check for errors now |
|
2016-01-21 19:13:50 +00:00
|
|
|
| ~SPC e c~ | clear errors |
|
2016-05-06 11:25:19 +00:00
|
|
|
| ~SPC e h~ | describe flycheck checker |
|
2016-01-21 19:13:50 +00:00
|
|
|
| ~SPC e l~ | display a list of all the errors |
|
2016-01-21 20:20:00 +00:00
|
|
|
| ~SPC e L~ | display a list of all the errors and focus the errors buffer |
|
2016-01-21 19:13:50 +00:00
|
|
|
| ~SPC e s~ | set flycheck checker |
|
|
|
|
| ~SPC e S~ | set flycheck checker executable |
|
2016-05-06 11:25:19 +00:00
|
|
|
| ~SPC e v~ | verify flycheck setup |
|
2016-01-21 19:13:50 +00:00
|
|
|
| ~SPC t s~ | toggle flycheck |
|
2017-02-15 03:16:26 +00:00
|
|
|
| ~SPC e x~ | explain the error at point |
|