Releases: flycheck/flycheck
Flycheck 34
New Features
- New syntax checkers
- [#1873]: Add error explainer to
perl-perlcritic
. - [#1875]: Add error-explainer to
css-stylelint
. - [#1876]: Add error-explainer for
markdownlint checker
. - [#2019]: Add support for RELAX NG schema in
xmllint
.
Bugs Fixed
- [#1793]: Fix
flycheck-ruby-rubocop
on buffers with no backing file.
Changes
- [#2026]:Update the possible locations for
yamllint
's
configuration file. - (Breaking) [#1697]: Remove the
coq
checker. - (Breaking) [#1935]: Remove the
chef-foodcritic
checker.
(it's now replaced byruby-chef-cookstyle
) - (Breaking) [#2018]: Remove the
golint
checker. - (Breaking) Remove the
ruby-rubylint
checker. - [#1704]: The
tslint
checker is deprecated; it will go away in a
future release.
Flycheck 33
Note: The changelog for this release is incomplete.
New features and improvements
- The
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] - Error explainers can now return URLs (to show a webpage) or functions (to
use custom formatting). For example, the Rust checker now renders
explanations usingmarkdown-view-mode
. [GH-1753] - Enable checkers in many newer TreeSitter-based major modes (think
*-ts-mode
).
New syntax checkers
- Python with
ruff
. [GH-2033]
Breaking changes
- Drop support for Emacs 25.
- The variable
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]
Flycheck 32
See the full changelog for more information. The flycheck-32 branch was originally frozen in May 2020.
Highlights
-
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 newend-line
andend-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. Variablesflycheck-relevant-error-other-file-show
andflycheck-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]
New features and improvements
- Flycheck can now trigger a syntax check automatically after switching
buffers, using theidle-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 will now use Emacs' native XML parsing when libXML fails. This
behavior can be changed by customizingflycheck-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 now locates checker executables using a customizable function,
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] - Checkers that report error positions as a single offset from the start of
the file can use the newflycheck-error-new-at-pos
constructor instead
of converting that position to a line and a column. [GH-1400] - Config-file variables can now be set to a list of file names. This is
useful for checkers like mypy which don't run correctly when called from a
subdirectory without passing an explicit config file. [GH-1711] - Thanks to algorithmic improvements in error reporting, Flycheck is now much
faster in large buffers. [GH-1750]
New syntax checkers:
- Awk with
gawk
[GH-1708] - Bazel with
bazel-buildifier
[GH-1613] - CUDA with
cuda-nvcc
[GH-1508] - CWL with
schema-salad-tool
[GH-1361] - Elixir with
credo
[GH-1062] - JSON with
json-jq
[GH-1568] - Jsonnet with
jsonnet
[GH-1345] - MarkdownLint CLI with
markdownlint
[GH-1366] - mypy with
python-mypy
[GH-1354] - Nix with
nix-linter
[GH-1530] - Opam with
opam lint
[GH-1532] - protobuf-prototool with
prototool
[GH-1591] - Rust with
rust-clippy
[GH-1385] - Ruumba with
eruby-ruumba
[GH-1616] - Staticcheck with
go-staticheck
[GH-1541] - terraform with
terraform fmt
,tflint
[GH-1586] - Tcl with
nagelfar
[GH-1365] - Text prose with
textlint
[GH-1534] - VHDL with
ghdl
[GH-1160]
Checker improvements:
python-pylint
andpython-flake8
are now invoked withpython -c
,
to make it easier to change between Python 2 and Python 3. [GH-1113]- Add
flycheck-perl-module-list
to use specified modules when
syntax checking code with theperl
checker. [GH-1207] rust-cargo
now usescargo check
andcargo test
. [GH-1289]- Add
flycheck-ghc-stack-project-file
for the
haskell-stack-ghc
checker. [GH-1316] - Add
flycheck-cppcheck-suppressions-file
to pass a suppressions
file to cppcheck. [GH-1329] - Add
--force-exclusion
flag torubocop
command. [GH-1348] - Flycheck now uses ESLint's JSON output instead of checkstyle XML. [GH-1350]
- Add
flychjeck-eslint-args
to pass arguments tojavascript-eslint
.
[GH-1360] - Flycheck will now execute
rubocop
from the directory where aGemfile
is located. If aGemfile
does not exist, the old behaviour of running
the command from the directory where.rubocop.yml
is found will be
used. [GH-1368] - Add
flycheck-sh-bash-args
to pass arguments tosh-bash
. [GH-1439] haskell-stack-ghc
will not try to install GHC anymore. [GH-1443]- Add
flycheck-ghdl-ieee-library
to select which standard IEEE
library to use for ghdl. [GH-1547] - The
javascript-eslint
checker now supportstypescript-mode
by
default. - Add
flycheck-erlang-rebar3-profile
to select which profile to
use when compiling erlang with rebar3. [GH-1560] - Add
flycheck-relevant-error-other-file-show
to avoid showing errors
from other files. [GH-1579] - The
nix-linter
checker now has an error explainer. [GH-1586] - The Emacs Lisp checker can now run in buffers not backed by files. [GH-1695]
Breaking changes
- Remove the
javascript-jscs
checker. [GH-1024] - Remove the
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]- Rename
flycheck-cargo-rustc-args
toflycheck-cargo-check-args
.
[GH-1289] rust-cargo
does not use the variableflycheck-rust-args
anymore.
[GH-1289]- Improve detection of default directory for
haskell-ghc
to consider
hpack
project files. [GH-1435] - Replace
go tool vet
withgo vet
. [GH-1548] - Remove the deprecated
go-megacheck
checker, which is replaced by
go-staticcheck
. [GH-1583]
Many thanks to all the people who contributed for this release 🎉
Flycheck 31
See the full changelog for more information.
Breaking changes
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.
Notable changes
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 🎉
Flycheck 30
Notable changes:
- Flycheck now checks Elixir with
dogma
and Sass/SCSS withsass-lint
. Jade support is gone in favour of Pug support, following the renaming of the language. - Flycheck can now show explanations for the error under point with
C-c ! e
—currently support for Rust is included, more to come. The command previously bound toC-c ! e
is not bound anymore, useM-x flycheck-set-checker-executable
. - Flycheck now automatically disables syntax checker which are not available in
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 withC-u C-c ! x
if you install the tool after visiting a file. - Using the same infrastructure Flycheck now automatically disables eslint if there is no eslint configuration for the current buffer. This introduces a slight delay when visiting Javascript buffers, but prevents errors from invoking eslint with no configuration. As part of this change support for explicit eslint configuration was removed—eslint's own configuration search is far superior.
- Likewise the explicit configuration for luacheck was removed as well, in favour of luacheck's own configuration file search, for the same reasons.
- Syntax checker definitions require
:modes
now; syntax checkers without:modes
signal an error.
Further information
29
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.
Javascript
This release replaces the option flycheck-eslint-rulesdir
with flycheck-eslint-rules-directories
which is now a list of rules directories for eslint.
Rust
The Rust syntax checkers now require Rust 1.7 or newer, and support the error format of Rust 1.12 and newer.
Miscellaneous
For more information please read the changelog.
Flycheck 28
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.
Flycheck 27
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.
Flycheck 26
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.
0.25.1
Flycheck 0.25, with standard input for syntax checkers, improved error display and an API for NixOS integration. Release announcement