Releases: flycheck/flycheck
Flycheck v35.0
What's Changed
- Add --expt-relaxed-constexpr to nvcc. by @eyal0 in #1975
- Add --expt-extended-lambda to nvcc. by @eyal0 in #2055
- Remove stray character by @dpassen in #2056
- Fix a bunch of "reference to free variable" warnings by @Hi-Angel in #2058
- Adapt to new AUCTeX mode names in #2059
- Add actionlint support to yaml-ts-mode by @Gavinok in #2064
- docstrings should not exceed 80 characters in width by @gutron in #2060
- fix(stylelint): remove support for deprecated command line arguments by @justinbarclay in #2066
- Add FlyC:0 and updated the mode menu by @JohnC32 in #2035
- option to control whether to display error at point after checking by @taquangtrung in #1987
- Fix(Haskell): Correctly Handle GHC 9.6 Error Output Format by @ayanamists in #2067
- Add a new checker 'r' for R in #2070
- ci: Exclude macos tests below 28.x by @jcs090218 in #2074
- New checker, perl-perlimports by @mavit in #2071
- Add salt-lint as new flycheck checker by @santifa in #2073
- Update vhdl-ghdl error-patterns by @cyrilarnould in #2077
- Support buffers without backing files in Ruff by @cpitclaudel in #2065
- Use project working-directory for python-ruff (#2068) by @corecode in #2076
- Fix ruff error-patterns and error-filter by @wyuenho in #2079
- Refine flycheck-display-errors lifecycle by @wyuenho in #1972
- ruff: --output-format=text replaced with --output-format=concise by @berquist in #2078
- Add flycheck-chktex-extra-flags by @slotThe in #2075
- Update
haskell-hlintchecker to HLint-3.0 by @jdnavarro in #1809 - Escape single quote in flycheck-chktex-extra-flags docstring. by @bodea in #2081
- yaml-actionlint: only allow inside GitHub workflows dir by @berquist in #2083
- Fix markdown for XML and YAML docs by @dunmaksim in #2088
- Support new puppet-ts-mode by @smoeding in #2095
- feat: Drop support for Emacs 26.x by @jcs090218 in #2104
- ci(test/run.el): Point to .eask by @jcs090218 in #2103
- Fix detection of cuda warnings. by @eyal0 in #2100
- feat: add options for configuring jsonnet by @DinoChiesa in #2105
- Add -Xcompiler option for cuda-nvcc. by @eyal0 in #2107
- c/c++-cppcheck: add flycheck-cppcheck-args variable by @fwinkl in #2110
- Ruby 3.4 compatibility by @aaronjensen in #2111
- ci: Test Emacs 30.1 by @jcs090218 in #2115
- Update flycheck-add-overlay/right-position-in-narrowed-buffer output by @manphiz in #2114
New Contributors
- @Hi-Angel made their first contribution in #2058
- @Gavinok made their first contribution in #2064
- @gutron made their first contribution in #2060
- @justinbarclay made their first contribution in #2066
- @JohnC32 made their first contribution in #2035
- @taquangtrung made their first contribution in #1987
- @ayanamists made their first contribution in #2067
- @santifa made their first contribution in #2073
- @cyrilarnould made their first contribution in #2077
- @corecode made their first contribution in #2076
- @slotThe made their first contribution in #2075
- @jdnavarro made their first contribution in #1809
- @bodea made their first contribution in #2081
- @dunmaksim made their first contribution in #2088
- @smoeding made their first contribution in #2095
- @DinoChiesa made their first contribution in #2105
- @fwinkl made their first contribution in #2110
- @manphiz made their first contribution in #2114
Full Changelog: 34.1...v35.0
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-rubocopon buffers with no backing file.
Changes
- [#2026]:Update the possible locations for
yamllint's
configuration file. - (Breaking) [#1697]: Remove the
coqchecker. - (Breaking) [#1935]: Remove the
chef-foodcriticchecker.
(it's now replaced byruby-chef-cookstyle) - (Breaking) [#2018]: Remove the
golintchecker. - (Breaking) Remove the
ruby-rubylintchecker. - [#1704]: The
tslintchecker 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-setupUI 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-errorsnow 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-lineand:end-columnarguments in
flycheck-error-new, or the newend-lineandend-columnfields 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-levelcontrol 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-modecontrols this behavior, and
flycheck-set-indication-modecan 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-stylevariable: 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-switchoption 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-delayand
flycheck-buffer-switch-check-intermediate-bufferscontrol 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-setupnow 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-posconstructor 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-pylintandpython-flake8are now invoked withpython -c,
to make it easier to change between Python 2 and Python 3. [GH-1113]- Add
flycheck-perl-module-listto use specified modules when
syntax checking code with theperlchecker. [GH-1207] rust-cargonow usescargo checkandcargo test. [GH-1289]- Add
flycheck-ghc-stack-project-filefor the
haskell-stack-ghcchecker. [GH-1316] - Add
flycheck-cppcheck-suppressions-fileto pass a suppressions
file to cppcheck. [GH-1329] - Add
--force-exclusionflag torubocopcommand. [GH-1348] - Flycheck now uses ESLint's JSON output instead of checkstyle XML. [GH-1350]
- Add
flychjeck-eslint-argsto pass arguments tojavascript-eslint.
[GH-1360] - Flycheck will now execute
rubocopfrom the directory where aGemfile
is located. If aGemfiledoes not exist, the old behaviour of running
the command from the directory where.rubocop.ymlis found will be
used. [GH-1368] - Add
flycheck-sh-bash-argsto pass arguments tosh-bash. [GH-1439] haskell-stack-ghcwill not try to install GHC anymore. [GH-1443]- Add
flycheck-ghdl-ieee-libraryto select which standard IEEE
library to use for ghdl. [GH-1547] - The
javascript-eslintchecker now supportstypescript-modeby
default. - Add
flycheck-erlang-rebar3-profileto select which profile to
use when compiling erlang with rebar3. [GH-1560] - Add
flycheck-relevant-error-other-file-showto avoid showing errors
from other files. [GH-1579] - The
nix-linterchecker 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-jscschecker. [GH-1024] - Remove the
elixir-dogmachecker. [GH-1450] rust-cargonow requires Rust 1.17 or newer. [GH-1289]rustnow requires 1.18 or newer. [GH-1501]- Rename
flycheck-cargo-rustc-argstoflycheck-cargo-check-args.
[GH-1289] rust-cargodoes not use the variableflycheck-rust-argsanymore.
[GH-1289]- Improve detection of default directory for
haskell-ghcto consider
hpackproject files. [GH-1435] - Replace
go tool vetwithgo vet. [GH-1548] - Remove the deprecated
go-megacheckchecker, 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
dogmaand 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 ! eis 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 ! xif 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
:modesnow; syntax checkers without:modessignal 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.