Changes¶
32 (Mar 28, 2022)¶
- 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 inflycheck-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. Variables
flycheck-relevant-error-other-file-showandflycheck-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, andflycheck-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]
- Many checkers and compiler, such as
- New features and improvements
- Flycheck can now trigger a syntax check automatically after switching
buffers, using the
idle-buffer-switchoption inflycheck-check-syntax-automatically. This is useful when errors in a file are due to problems in a separate file. Variablesflycheck-idle-buffer-switch-delayandflycheck-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 customizing
flycheck-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 new
flycheck-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]
- Flycheck can now trigger a syntax check automatically after switching
buffers, using the
- 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]
- Awk with
- 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 thehaskell-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 aGemfileis 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 considerhpackproject files. [GH-1435] - Replace
go tool vetwithgo vet. [GH-1548] - Remove the deprecated
go-megacheckchecker, which is replaced bygo-staticcheck. [GH-1583]
- Remove the
31 (Oct 07, 2017)¶
- Breaking changes
rust-cargonow requires Rust 1.15 or newer [GH-1201]- Remove javascript-gjslint checker
- New syntax checkers:
- Protobuf with
protoc[GH-1125] - systemd-analyze with
systemd-analyze[GH-1135] - Nix with
nix-instantiate[GH-1164] - Dockerfile with
hadolint[GH-1194] - AsciiDoc with
asciidoctor[GH-1167] - CSS/SCSS/LESS with
stylelint[GH-903] - Ruby with
reek[GH-1244] - Go with
megacheck[GH-1290] - LLVM IR with
llc[GH-1302] - Text prose with
proselint[GH-1304]
- Protobuf with
- New features:
- Add
flycheck-xml-xmlstarlet-xsd-pathandflycheck-xml-xmllint-xsd-pathto specify an XSD schema to validate XML documents against [GH-1272] - Add
flycheck-tslint-argsto pass additional arguments to tslint [GH-1186] - Add an error explainer to the
rpm-rpmlintchecker usingrpmlint -I[GH-1235] - Add
flycheck-emacs-lisp-check-declareto check function declaration in theemacs-lispchecker [GH-1286] - Add
flycheck-shellcheck-follow-sourcesto check included files when using thesh-shellcheckchecker [GH-1256]
- Add
- Improvements:
- Use option
flycheck-go-build-tagsforgo-test,go-vetandgo-errcheckas well. - Add a revert function to
flycheck-verify-setup, so hittinggreloads the buffer. - Make sure the erlang compiler is only run on compilable files.
flycheck-tslintdoes not crash any more on deprecation notices [GH-1174]rust-cargonow checks integration tests, examples and benchmarks [GH-1206]rust-cargodoes not useflycheck-rust-library-pathanymore, as dependencies are taken care of by Cargo [GH-1206]c/c++-gccchecker now works from GCC 4.4 and up [GH-1226]
- Use option
30 (Oct 12, 2016)¶
- Breaking changes
- Flycheck now requires flake8 3.0 or newer
- Remove
--configoption inlua-luacheckin favour ofluacheck’s own.luacheckrcdetection. Thereforeflycheck-luacheckrcis no longer used [GH-1057] :modesis now mandatory for syntax checker definitions [GH-1071]- Remove jade checker [GH-951] [GH-1084]
- Remove
javascript-eslintrcand instead rely on eslint’s own configuration file search [GH-1085] C-c ! eexplains errors now [GH-1122]
- New syntax checkers:
- New features:
- Add
flycheck-cargo-rustc-argsto pass multiple arguments to cargo rustc subcommand [GH-1079] - Add
:error-explainertoflycheck-define-checkerandflycheck-explain-error-at-pointto display explanations of errors [GH-1122] - Add an error explainer to the
rustandrust-cargocheckers usingrustc --explain[GH-1122] - Add
:enabledproperty toflycheck-define-checker[GH-1089]
- Add
- Improvements:
29 (Aug 28, 2016)¶
- Breaking changes
- New syntax checkers:
- New features:
- Improvements:
- Add default directory for
haskell-stack-ghcandhaskell-ghccheckers [GH-1007] rustandrust-cargocheckers now support the new error format of rust 1.12 [GH-1016]flycheck-verify-checkerandflycheck-verify-setupnow include information about configuration files of syntax checkers [GH-1021] [GH-1038]
- Add default directory for
28 (Jun 05, 2016)¶
27 (May 08, 2016)¶
- Breaking changes
- Require PHP Code Sniffer 2.6 or newer for
php-phpcs[GH-921]
- Require PHP Code Sniffer 2.6 or newer for
- New syntax checkers:
- Improvements:
- Pass checkdoc settings from Emacs to
emacs-lisp-checkdoc[GH-741] [GH-937]
- Pass checkdoc settings from Emacs to
- Bug fixes:
26 (Apr 27, 2016)¶
Flycheck now has a Code of Conduct which defines the acceptable behaviour and the moderation guidelines for the Flycheck community. [GH-819]
Flycheck also provides a Gitter channel now for questions and discussions about development. [GH-820]
The native Texinfo manual is again replaced with a Sphinx based documentation. We hope that this change makes the manual easier to edit and to maintain and more welcoming for new contributors. The downside is that we can not longer include a Info manual in Flycheck’s MELPA packages.
From this release onward Flycheck will use a single continuously increasing version number. Breaking changes may occur at any point.
- Breaking changes:
- Remove
flycheck-copy-messages-as-kill, obsolete since Flycheck 0.22 - Remove
flycheck-perlcritic-verbosity, obsolete since Flycheck 0.22 - Replace
flycheck-completion-systemwithflycheck-completing-read-function[GH-870] - JSON syntax checkers now require
json-modeand do not check in Javascript Mode anymore - Prefer eslint over jshint for Javascript
- Obsolete
flycheck-infoin favour of the newflycheck-manualcommand
- Remove
- New syntax checkers:
- New features:
- Add
flycheck-puppet-lint-rcto customise the location of the puppetlint configuration file [GH-846] - Add
flycheck-puppet-lint-disabled-checksto disable specific checks of puppetlint [GH-824] - New library
flycheck-buttercupto support writing Buttercup specs for Flycheck - Add
flycheck-perlcriticrcto set a configuration file for Perl::Critic [GH-851] - Add
flycheck-jshint-extract-javascriptto extract Javascript from HTML [GH-825] - Add
flycheck-cppcheck-language-standardto set the language standard for cppcheck [GH-862] - Add
flycheck-mode-line-prefixto customise the prefix of Flycheck’s mode line lighter [GH-879] [GH-880] - Add
flycheck-go-vet-shadowto check for shadowed variables withgo vet[GH-765] [GH-897] - Add
flycheck-ghc-stack-use-nixto enable Nix support for Stack GHC [GH-913]
- Add
- Improvements:
- Map error IDs from flake8-pep257 to Flycheck error levels
- Explicitly display errors at point with
C-c ! h[GH-834] - Merge message and checker columns in the error list to remove redundant ellipsis [GH-828]
- Indicate disabled checkers in verification buffers [GH-749]
- Do not enable Flycheck Mode in
fundamental-modebuffers [GH-883] - Write
go testoutput to a temporary files [GH-887] - Check whether
lintris actually installed [GH-911]
- Bug fixes:
- Fix folding of C/C++ errors from included files [GH-783]
- Fix verification of SCSS-Lint checkstyle reporter
- Don’t fall back to
rustifrust-cargoshould be used [GH-817] - Don’t change current buffer when closing the error message buffer [GH-648]
- Never display error message buffer in current window [GH-822]
- Work around a caching issue in Rubocop [GH-844]
- Fix checkdoc failure with some Emacs Lisp syntax [GH-833] [GH-845] [GH-898]
- Correctly parse Haskell module name with exports right after the module name [GH-848]
- Don’t hang when sending buffers to node.js processes on Windows [GH-794][GH-850]
- Parse suggestions from
hlint[GH-874] - Go errcheck handles multiple
$GOPATHentries correctly now [GH-580][GH-906] - Properly handle Go build failing in a directory with multiple packages [GH-676] [GH-904]
- Make cppcheck recognise C++ header files [GH-909]
- Don’t run phpcs on empty buffers [GH-907]