This document lists all programming and markup languages which Flycheck supports.
Note
Extensions may provide support for additional languages or add deeper integration with existing languages.
Take a look at the list of extensions <flycheck-extensions>
to see what the community can offer to you.
Each language has one or more syntax checkers whose names follow a convention of {language}-{tool}
. All syntax checkers are listed in the order they would be applied to a buffer, with all available options. For more information about a syntax checker open Emacs and use flycheck-describe-checker
to view the docstring of the syntax checker. Likewise, you may use describe-variable
to read the complete docstring of any option.
Ada
ada-gnat
Check ADA syntax and types with GNAT.
flycheck-gnat-args
A list of additional options.
flycheck-gnat-include-path
A list of include directories. Relative paths are relative to the path of the buffer being checked.
flycheck-gnat-language-standard
The language standard to use as string.
flycheck-gnat-warnings
A list of additional warnings to enable. Each item is the name of a warning category to enable.
AsciiDoc
asciidoc
Check AsciiDoc with the standard AsciiDoc processor.
C/C++
Flycheck checks C and C++ with either c/c++-clang or c/c++-gcc, and then with c/c++-cppcheck.
c/c++-clang c/c++-gcc
Check C/C++ for syntax and type errors with Clang or GCC respectively.
Note
c/c++-gcc requires GCC 4.8 or newer.
flycheck-clang-args flycheck-gcc-args
A list of additional arguments for c/c++-clang and c/c++-gcc respectively.
flycheck-clang-blocks
Whether to enable blocks in c/c++-clang.
flycheck-clang-definitions flycheck-gcc-definitions
A list of additional preprocessor definitions for c/c++-clang and c/c++-gcc respectively.
flycheck-clang-include-path flycheck-gcc-include-path
A list of include directories for c/c++-clang and c/c++-gcc respectively, relative to the file being checked.
flycheck-clang-includes flycheck-gcc-includes
A list of additional include files for c/c++-clang and c/c++-gcc respectively, relative to the file being checked.
flycheck-clang-language-standard flycheck-gcc-language-standard
The language standard to use in c/c++-clang and c/c++-gcc respectively as string, via the
-std
option.flycheck-clang-ms-extensions
Whether to enable Microsoft extensions to C/C++ in c/c++-clang.
flycheck-clang-no-exceptions flycheck-gcc-no-exceptions
Whether to disable exceptions in c/c++-clang and c/c++-gcc respectively.
flycheck-clang-no-rtti flycheck-gcc-no-rtti
Whether to disable RTTI in c/c++-clang and c/c++-gcc respectively, via
-fno-rtti
.flycheck-clang-standard-library
The name of the standard library to use for c/c++-clang, as string.
flycheck-gcc-openmp
Whether to enable OpenMP in c/c++-gcc.
flycheck-clang-pedantic flycheck-gcc-pedantic
Whether to warn about language extensions in c/c++-clang and c/c++-gcc respectively.
flycheck-clang-pedantic-errors flycheck-gcc-pedantic-errors
Whether to error on language extensions in c/c++-clang and c/c++-gcc respectively.
flycheck-clang-warnings flycheck-gcc-warnings
A list of additional warnings to enable in c/c++-clang and c/c++-gcc respectively. Each item is the name of a warning or warning category for
-W
.c/c++-cppcheck
Check C/C++ for semantic and stylistic issues with cppcheck.
flycheck-cppcheck-checks
A list of enabled checks. Each item is the name of a check for the
--enable
option.flycheck-cppcheck-inconclusive
Whether to enable inconclusive checks. These checks may yield more false positives than normal checks.
Note
This option requires cppcheck 1.54 or newer.
flycheck-cppcheck-include-path
A list of include directories. Relative paths are relative to the file being checked.
flycheck-cppcheck-standards
The C, C++ and/or POSIX standards to use via one or more
--std=
arguments.flycheck-cppcheck-suppressions
The cppcheck suppressions list to use via one or more
--suppress=
arguments.
CFEngine
cfengine
Check syntax with CFEngine.
Chef
chef-foodcritic
Check style in Chef recipes with foodcritic.
flycheck-foodcritic-tags
A list of tags to select.
Coffeescript
Flycheck checks Coffeescript syntax with coffee and then lints with coffee-coffeelint.
coffee
Check syntax with the Coffeescript compiler.
Coq
coq
Check and proof with the standard Coq compiler.
CSS
css-csslint
Check syntax and style with CSSLint.
D
d-dmd
Check syntax and types with (DMD).
Note
This syntax checker requires DMD 2.066 or newer.
flycheck-dmd-include-path
A list of include directories.
flycheck-dmd-args
A list of additional arguments.
flycheck-d-unittest
Flycheck extension which provides a syntax checker to run D unittests on the fly and report the results with Flycheck.
Elixir
elixir-dogma
Check syntax and code style with Dogma.
Emacs Lisp
Flycheck checks Emacs Lisp with emacs-lisp and then with emacs-lisp-checkdoc.
emacs-lisp
Check syntax with the built-in byte compiler.
flycheck-emacs-lisp-load-path
The load path as list of strings. Relative directories are expanded against the default-directory of the buffer being checked.
flycheck-emacs-lisp-initialize-packages
Whether to initialize Emacs' package manager with package-initialize before checking the buffer. If set to auto
(the default), only initialize the package managers when checking files under user-emacs-directory.
flycheck-emacs-lisp-package-user-dir
The package directory as string. Has no effect if flycheck-emacs-lisp-initialize-packages is nil.
emacs-lisp-checkdoc
Check Emacs Lisp documentation conventions with checkdoc
.
(elisp)Documentation Tips
Information about documentation conventions for Emacs Lisp.
purcell/flycheck-package
Flycheck extension which adds a syntax checker to check for violation of Emacs Lisp library headers and packaging conventions.
(elisp)Library Headers
Information about library headers for Emacs Lisp files.
Erlang
erlang
Check Erlang with the standard Erlang compiler.
flycheck-erlang-include-path
A list of include directories.
flycheck-erlang-library-path
A list of library directories.
ERuby
eruby-erubis
Check ERuby with erubis.
Fortran
fortran-gfortran
Check Fortran syntax and type with GFortran.
flycheck-gfortran-args
A list of additional arguments.
flycheck-gfortran-include-path
A list of include directories. Relative paths are relative to the file being checked.
flycheck-gfortran-language-standard
The language standard to use via the -std
option.
flycheck-gfortran-layout
The source code layout to use. Set to free
or fixed
for free or fixed layout respectively, or nil (the default) to let GFortran automatically determine the layout.
flycheck-gfortran-warnings
A list of warnings enabled via the -W
option.
Go
Flycheck checks Go with the following checkers:
- go-gofmt
- go-golint
- go-vet
- go-build or go-test
- go-errcheck
- go-unconvert
go-gofmt
Check Go syntax with gofmt.
go-golint
Check Go code style with Golint.
go-vet
Check Go for suspicious code with vet.
flycheck-go-vet-print-functions
A list of print-like functions to check calls for format string problems.
flycheck-go-vet-shadow
Whether to check for shadowed variables, in Go 1.6 or newer.
go-build
Check syntax and type with the Go compiler.
Note
This syntax checker requires Go 1.6 or newer.
flycheck-go-build-install-deps
Whether to install dependencies while checking with go-build or go-test
flycheck-go-build-tags
A list of build tags.
go-test
Check syntax and types of Go tests with the Go compiler.
Note
This syntax checker requires Go 1.6 or newer.
flycheck-go-build-install-deps
See flycheck-go-build-install-deps.
go-errcheck
Check for unhandled error returns in Go with errcheck.
Note
This syntax checker requires errcheck build from commit 8515d34 (Aug 28th, 2015) or newer.
go-unconvert
Check for unnecessary type conversions with unconvert.
Groovy
groovy
Check syntax using the Groovy compiler.
Haml
haml
Check syntax with the Haml compiler.
Handlebars
handlebars
Check syntax with the Handlebars compiler.
Haskell
Flycheck checks Haskell with haskell-stack-ghc (in Stack projects) or haskell-ghc, and then with haskell-hlint.
flycheck-haskell
Flycheck extension to configure Flycheck's Haskell checkers from the metadata, with support for Cabal sandboxes.
flycheck-hdevtools
Flycheck extension which adds an alternative syntax checker for GHC using hdevtools.
haskell-stack-ghc haskell-ghc
Check syntax and type GHC. In Stack projects invoke GHC through Stack to bring package dependencies from Stack in.
flycheck-ghc-args
A list of additional arguments.
flycheck-ghc-no-user-package-database
Whether to disable the user package database (only for haskell-ghc).
flycheck-ghc-stack-use-nix
Whether to enable Nix support for Stack (only for haskell-stack-ghc).
flycheck-ghc-package-databases
A list of additional package databases for GHC (only for haskell-ghc). Each item points to a directory containing a package directory, via -package-db
.
flycheck-ghc-search-path
A list of module directories, via -i
.
flycheck-ghc-language-extensions
A list of language extensions, via -X
.
haskell-hlint
Lint with hlint.
flycheck-hlint-args
A list of additional arguments.
flycheck-hlint-language-extensions
A list of language extensions to enable.
flycheck-hlint-ignore-rules
A list of rules to ignore.
flycheck-hlint-hint-packages
A list of additional hint packages to include.
flycheck-hlintrc
HTML
Javascript
Flycheck checks Javascript with one of javascript-eslint, javascript-jshint or javascript-gjslint, and then with javascript-jscs.
Alternatively javascript-standard is used instead all of the former ones.
javascript-eslint
Check syntax and lint with ESLint.
flycheck-eslint-rules-directories
A list of directories with custom rules.
flycheck-eslintrc
javascript-jshint
Check syntax and lint with JSHint.
flycheck-jshint-extract-javascript
Whether to extract Javascript from HTML before linting.
flycheck-jshintrc
javascript-standard
Check syntax and code style with Standard or Semistandard.
JSON
Flycheck checks JSON with json-jsonlint or json-python-json.
json-jsonlint
Check JSON with jsonlint.
json-python-json
Check JSON with Python's built-in :pyjson
module.
Less
Lua
Flycheck checks Lua with lua-luacheck, falling back to lua.
lua-luacheck
Check syntax and lint with Luacheck.
lua
Check syntax with the Lua compiler.
Markdown
markdown-mdl
Check Markdown with markdownlint.
flycheck-markdown-mdl-rules
A list of enabled rules.
flycheck-markdown-mdl-tags
A list of enabled rule tags.
flycheck-markdown-mdl-style
Perl
Flycheck checks Perl with perl and perl-perlcritic.
perl
Check syntax with the Perl interpreter.
flycheck-perl-include-path
A list of include directories, relative to the file being checked.
perl-perlcritic
Lint and check style with Perl::Critic.
flycheck-perlcritic-severity
The severity level as integer for the --severity
.
flycheck-perlcriticrc
PHP
Flycheck checks PHP with php, php-phpmd and php-phpcs.
php
Check syntax with PHP CLI
php-phpmd
Lint with PHP Mess Detector.
flycheck-phpmd-rulesets
A list of rule sets. Each item is either the name of a default rule set, or the path to a custom rule set file.
php-phpcs
Check style with PHP Code Sniffer.
Note
This syntax checker requires PHP Code Sniffer 2.6 or newer.
flycheck-phpcs-standard
The coding standard, either as name of a built-in standard, or as path to a standard specification.
Processing
processing
Check syntax using the Processing compiler.
Pug
pug
Check syntax using the Pug compiler.
Puppet
Flycheck checks Puppet with puppet-parser and lints with puppet-lint.
puppet-parser
Check syntax with the Puppet compiler.
puppet-lint
Link with Puppet Lint.
flycheck-puppet-lint-disabled-checks
A list of checks to disable.
flycheck-puppet-lint-rc
Python
Flycheck checks Python with python-flake8 or python-pylint, and falls back to python-pycompile if neither of those is available.
flycheck-pyflakes <Wilfred/flycheck-pyflakes>
Flycheck extension which adds a syntax checker using Pyflakes.
python-flake8
Check syntax and lint with flake8.
Note
This syntax checker requires flake8 3.0 or newer.
flycheck-flake8-error-level-alist
An alist mapping Flake8 error IDs to Flycheck error levels.
flycheck-flake8-maximum-complexity
The maximum McCabe complexity allowed for methods.
flycheck-flake8-maximum-line-length
The maximum length of lines.
flycheck-flake8rc
python-pylint
Check syntax and lint with Pylint.
Note
This syntax checker requires Pylint 1.0 or newer.
flycheck-pylint-use-symbolic-id
Whether to report symbolic (e.g. no-name-in-module
) or numeric (e.g. E0611
) message identifiers.
flycheck-pylintrc
python-pycompile
Check syntax with Python's byte compiler (see :pypy_compile
).
R
r-lintr
Check syntax and lint with lintr.
flycheck-lintr-caching
Whether to enable caching in lintr. On by default; it is not recommended to disable caching unless it causes actual problems.
flycheck-lintr-linters
Linters to use as a string with an R expression which selects the linters to use.
Racket
racket
Check syntax with raco expand from the compiler-lib
package.
Note
This syntax checker needs the compiler-lib
package.
RPM Spec
rpm-rpmlint
Lint with rpmlint.
reStructuredText
Flycheck checks reStructuredText with rst-sphinx in Sphinx projects and with rst otherwise.
rst-sphinx
Check documents with Sphinx.
Note
This syntax checker requires Sphinx 1.2 or newer.
flycheck-sphinx-warn-on-missing-references
Whether to emit warnings for all missing references.
rst
Check documents with docutils.
Ruby
Flycheck checks Ruby with ruby-rubocop and ruby-rubylint, falling back to ruby or ruby-jruby for basic syntax checking if those are not available.
ruby-rubocop
Check syntax and lint with RuboCop.
Note
This syntax checker requires Rubocop 0.34 or newer.
flycheck-rubocop-lint-only
Whether to suppress warnings about style issues, via the --lint
option.
flycheck-rubocoprc
ruby-rubylint
Check syntax and lint with ruby-lint.
Note
This syntax checker requires ruby-lint 2.0.2 or newer.
flycheck-rubylintrc
ruby
Check syntax with the Ruby interpreter.
ruby-jruby
Check syntax with the JRuby interpreter.
Rust
Flycheck checks Rust with rust-cargo in Cargo projects, or rust otherwise.
rust-cargo rust
Check syntax and types with the Rust compiler. In a Cargo project the compiler is invoked through cargo rustc
to take Cargo dependencies into account.
Note
These syntax checkers require Rust 1.7 or newer.
flycheck-rust
Flycheck extension to configure Rust syntax checkers according to the current Cargo project.
flycheck-rust-args
A list of additional arguments that are passed to rustc.
flycheck-cargo-rustc-args
A list of additional arguments passed to the cargo rustc subcommand
flycheck-rust-check-tests
Whether to check test code in Rust.
flycheck-rust-crate-root
A path to the crate root for the current buffer, or nil if the current buffer is a crate by itself.
rust-cargo ignores this option as the crate root is given by Cargo.
flycheck-rust-crate-type
The type of the crate to check, as string for the --crate-type
option.
flycheck-rust-binary-name
The name of the binary to pass to cargo rustc --bin
, as a string.
Only required when flycheck-rust-crate-type is bin
and the crate has multiple targets.
flycheck-rust-library-path
A list of additional library directories. Relative paths are relative to the buffer being checked.
Sass
Flycheck checks SASS with sass/scss-sass-lint, falling back to sass.
sass
Check syntax with the Sass compiler.
flycheck-sass-compass
Whether to enable the Compass CSS framework via --compass
.
Scala
Flycheck checks Scala with scala and scala-scalastyle.
scala
Check syntax and types with the Scala compiler.
Note
This syntax checker is fairly primitive. For a better Scala experience we recommend Ensime.
scala-scalastyle
Check style with Scalastyle.
flycheck-scalastylerc
Important
A configuration file is mandatory for this syntax checker. If flycheck-scalastylerc is not set or the configuration file not found this syntax checker will not be applied.
Scheme
Flycheck checks CHICKEN Scheme files with csc
.
scheme-chicken
Check syntax with csc
, the CHICKEN Scheme compiler.
Important
Geiser must be installed and active for this checker to work.
SCSS
Flycheck checks SCSS with scss-lint, falling back to sass/scss-sass-lint first and scss if neither is available.
scss-lint
Check syntax and lint with SCSS-Lint.
Note
This syntax checker requires SCSS-Lint 0.43.2 or newer.
flycheck-scss-lintrc
scss
Check syntax with the SCSS compiler.
flycheck-scss-compass
Whether to enable the Compass CSS framework with --compass
.
Shell scripting languages
Flycheck checks various shell scripting languages:
- Bash with sh-bash and sh-shellcheck
- POSIX shell (i.e.
/bin/sh
) with sh-posix-dash or sh-posix-bash - Zsh with sh-zsh
sh-bash
Check Bash syntax.
sh-posix-dash
Check POSIX shell syntax with Dash.
sh-posix-bash
Check POSIX shell syntax with Bash.
sh-zsh
Check Zsh syntax.
sh-shellcheck
Lint Bash and POSIX shell with ShellCheck.
flycheck-shellcheck-excluded-warnings
A list of excluded warnings.
Slim
slim
Check Slim using the Slim compiler.
slim-lint
Check Slim best practices using the slim-lint linter.
SQL
sql-sqlint
Check SQL syntax with Sqlint.
TeX/LaTeX
Flycheck checks TeX and LaTeX with either tex-chktex or tex-lacheck.
tex-lacheck
Check style with Lacheck.
Texinfo
texinfo
Check syntax with makeinfo
from Texinfo.
TypeScript
typescript-tslint
Check syntax and style with TSLint.
flycheck-typescript-tslint-config
flycheck-typescript-tslint-rulesdir
Additional rules directory, for user created rules.
Verilog
verilog-verilator
Check syntax with Verilator.
flycheck-verilator-include-path
A list of include directories. Relative paths are relative to the file being checked.
XML
Flycheck checks XML with xml-xmlstarlet or xml-xmllint.
xml-xmlstarlet
Check syntax with XMLStarlet.
xml-xmllint
Check syntax with xmllint
from Libxml2.
YAML
Flycheck checks YAML with yaml-jsyaml or yaml-ruby.
yaml-jsyaml
Check syntax with js-yaml.
yaml-ruby
Check syntax with Ruby's YAML parser.