On the fly syntax checking for GNU Emacs
phpcs-changed
haml-lint
yaml-actionlint
checker for GitHub yaml action
workflows.statix
cookstyle
pymarkdown
perl-perlcritic
.css-stylelint
.markdownlint checker
.xmllint
.flycheck-ruby-rubocop
on buffers with no backing file.yamllint
's
configuration file.coq
checker.chef-foodcritic
checker.
(it's now replaced by ruby-chef-cookstyle
)golint
checker.ruby-rubylint
checker.tslint
checker is deprecated; it will go away in a
future release.Note: The changelog for this release is incomplete.
flycheck-verify-setup
UI now includes buttons to re-enable manually
disabled checkers and to try to re-enable automatically disabled checkers
(command checkers are automatically disabled when their executable cannot be
found). [GH-1755]markdown-view-mode
. [GH-1753]*-ts-mode
).ruff
. [GH-2033]flycheck-current-errors
now contains errors in the order in
which they were returned by checkers. In previous versions of Flycheck,
this list was sorted by error position and severity. [GH-1749]See the full changelog for more information. The flycheck-32 branch was originally frozen in May 2020.
Many checkers and compiler, such as ocaml
, rust
, eslint
, and
others, include end-line and end-column information. Flycheck can now
highlight the exact region that they report. Authors of checker definitions
can use the new :end-line
and :end-column
arguments in
flycheck-error-new
, or the new end-line
and end-column
fields in
error patterns. [GH-1400]
Errors that checkers return for other files will now be displayed on the
first line of the current buffer instead of begin discarded. The error list
indicates which file each error came from, and navigation moves
automatically moves between files. This change helps with compiled
languages, where an error in another file may cause the current file to be
considered invalid. Variables flycheck-relevant-error-other-file-show
and flycheck-relevant-error-other-file-minimum-level
control this
behavior. [GH-1427]
Flycheck can now draw error indicators in margins in addition to fringes.
Margins can contain arbitrary characters and images, not just monochrome
bitmaps, allowing for a better experience on high-DPI screens.
flycheck-indication-mode
controls this behavior, and
flycheck-set-indication-mode
can be used to automatically adjust the
fringes and margins. Additionally, Flycheck's will now use high-resolution
fringe bitmaps if the fringe is wide enough [GH-1742, GH-1744]
Error highlighting is now configurable, using the new
flycheck-highlighting-style
variable: instead of applying
level-dependent faces (typically with wavy underlines), Flycheck can now
insert delimiters around errors, or mix styles depending on how many lines
an error covers. Additionally, stipples are added in the fringes to
indicate errors that span multiple lines. [GH-1743]
idle-buffer-switch
option in
flycheck-check-syntax-automatically
. This is useful when errors in a
file are due to problems in a separate file. Variables
flycheck-idle-buffer-switch-delay
and
flycheck-buffer-switch-check-intermediate-buffers
control the
functionality. [GH-1297]flycheck-xml-parser
. [GH-1349]flycheck-verify-setup
now shows more clearly which checkers
will run in the buffer, and which are misconfigured. [GH-1478]flycheck-executable-find
. The default value of this function allows
relative paths (set e.g. in file or dir-local variables) in addition to
absolute paths and executable names. [GH-1485]flycheck-error-new-at-pos
constructor instead
of converting that position to a line and a column. [GH-1400]gawk
[GH-1708]bazel-buildifier
[GH-1613]cuda-nvcc
[GH-1508]schema-salad-tool
[GH-1361]credo
[GH-1062]json-jq
[GH-1568]jsonnet
[GH-1345]markdownlint
[GH-1366]python-mypy
[GH-1354]nix-linter
[GH-1530]opam lint
[GH-1532]prototool
[GH-1591]rust-clippy
[GH-1385]eruby-ruumba
[GH-1616]go-staticheck
[GH-1541]terraform fmt
, tflint
[GH-1586]nagelfar
[GH-1365]textlint
[GH-1534]ghdl
[GH-1160]python-pylint
and python-flake8
are now invoked with python -c
,
to make it easier to change between Python 2 and Python 3. [GH-1113]flycheck-perl-module-list
to use specified modules when
syntax checking code with the perl
checker. [GH-1207]rust-cargo
now uses cargo check
and cargo test
. [GH-1289]flycheck-ghc-stack-project-file
for the
haskell-stack-ghc
checker. [GH-1316]flycheck-cppcheck-suppressions-file
to pass a suppressions
file to cppcheck. [GH-1329]--force-exclusion
flag to rubocop
command. [GH-1348]flychjeck-eslint-args
to pass arguments to javascript-eslint
.
[GH-1360]rubocop
from the directory where a Gemfile
is located. If a Gemfile
does not exist, the old behaviour of running
the command from the directory where .rubocop.yml
is found will be
used. [GH-1368]flycheck-sh-bash-args
to pass arguments to sh-bash
. [GH-1439]haskell-stack-ghc
will not try to install GHC anymore. [GH-1443]flycheck-ghdl-ieee-library
to select which standard IEEE
library to use for ghdl. [GH-1547]javascript-eslint
checker now supports typescript-mode
by
default.flycheck-erlang-rebar3-profile
to select which profile to
use when compiling erlang with rebar3. [GH-1560]flycheck-relevant-error-other-file-show
to avoid showing errors
from other files. [GH-1579]nix-linter
checker now has an error explainer. [GH-1586]javascript-jscs
checker. [GH-1024]elixir-dogma
checker. [GH-1450]rust-cargo
now requires Rust 1.17 or newer. [GH-1289]rust
now requires 1.18 or newer. [GH-1501]flycheck-cargo-rustc-args
to flycheck-cargo-check-args
.
[GH-1289]rust-cargo
does not use the variable flycheck-rust-args
anymore.
[GH-1289]haskell-ghc
to consider
hpack
project files. [GH-1435]go tool vet
with go vet
. [GH-1548]go-megacheck
checker, which is replaced by
go-staticcheck
. [GH-1583]Many thanks to all the people who contributed for this release 🎉
See the full changelog for more information.
The rust-cargo
checker now requires Rust 1.15 or newer. On the other hand, the checker is now capable to test integration tests, examples and benchmarks.
We have removed the javascript-gjslint
checker following the deprecation of the Closure Linter.
We have added 10 new checkers: protobuf-protoc
, systemd-analyze
, nix-instantiate
, dockerfile-hadolint
, asciidoctor
, less-stylelint
, ruby-reek
, go-megacheck
, llvm-llc
, and proselint
.
Many thanks to all the people who contributed for this release 🎉
dogma
and Sass/SCSS with sass-lint
. Jade support is gone in favour of Pug support, following the renaming of the language.C-c ! e
—currently support for Rust is included, more to come. The command previously bound to C-c ! e
is not bound anymore, use M-x flycheck-set-checker-executable
.exec-path
, and does not longer attempt to find executables before each syntax check. As such you explicitly need to re-enable a syntax checker with C-u C-c ! x
if you install the tool after visiting a file.:modes
now; syntax checkers without :modes
signal an error.This release adds a new :working-directory
property to syntax checkers which lets syntax checkers control the directory they are invoked from. The Haskell syntax checkers use this feature to run from the project directory if possible.
This release replaces the option flycheck-eslint-rulesdir
with flycheck-eslint-rules-directories
which is now a list of rules directories for eslint.
The Rust syntax checkers now require Rust 1.7 or newer, and support the error format of Rust 1.12 and newer.
For more information please read the changelog.
This release adds new options for cppcheck and Rust, adds support for Geiser Mode and fixes two bugs.
Take a look at the changelog for more information.
This release brings new syntax checkers for Go, Markdown and TypeScript, and makes the Emacs Lisp Checkdoc syntax checker use any Checkdoc options from your Emacs session.
The PHP Code Sniffer syntax checker now requires PHP Code Sniffer 2.6 or newer, which is the latest release at the time of writing.
See the Changelog for more information.
After a longer hiatus it's time for another release which not only brings new languages, features and bug fixes but also is a major step forward for Flycheck as a community project. We now have a Code of Conduct, a new and much improved Contributor's Guide and a Gitter channel for you to ask question and discuss further development of Flycheck.
From now on we'll release more frequently. The version number will just monotonically increase; we'll still not make any guarantees about backwards compatibility.
In another major development we're going back to a Sphinx-based website and manual, because Texinfo is too much effort to maintain and write, and to arcane a format to force it upon our contributors. Unfortunately this means that we'll no longer include an Info manual in Flycheck's packages, so you can't read Flycheck's manual in Emacs' Info viewer anymore.
Please take a look at the Changelog for information about new features and bug fixes.
Flycheck 0.25, with standard input for syntax checkers, improved error display and an API for NixOS integration. Release announcement