# Supported Languages

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 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.

  defcustom `flycheck-gnat-args`

    A list of additional options.

  defcustom `flycheck-gnat-include-path`

    A list of include directories. Relative paths are relative to the path of the buffer being checked.

  defcustom `flycheck-gnat-language-standard`

    The language standard to use as string.

  defcustom `flycheck-gnat-warnings`

    A list of additional warnings to enable. Each item is the name of a warning category to enable.

## AsciiDoc

`asciidoctor`

  Check AsciiDoc with the default Asciidoctor backend.

`asciidoc`

  Check AsciiDoc with the standard AsciiDoc processor.

## Awk

`awk-gawk`

  Check Awk with gawk.

## Bazel

`bazel-buildifier`

  Check Bazel with buildifier.

## 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.4 or newer.

  defcustom `flycheck-clang-args`
  defcustom `flycheck-gcc-args`

    A list of additional arguments for `c/c++-clang` and `c/c++-gcc` respectively.

  defcustom `flycheck-clang-blocks`

    Whether to enable blocks in `c/c++-clang`.

  defcustom `flycheck-clang-definitions`
  defcustom `flycheck-gcc-definitions`

    A list of additional preprocessor definitions for `c/c++-clang` and `c/c++-gcc` respectively.

  defcustom `flycheck-clang-include-path`
  defcustom `flycheck-gcc-include-path`

    A list of include directories for `c/c++-clang` and `c/c++-gcc` respectively, relative to the file being checked.

  defcustom `flycheck-clang-includes`
  defcustom `flycheck-gcc-includes`

    A list of additional include files for `c/c++-clang` and `c/c++-gcc` respectively, relative to the file being checked.

  defcustom `flycheck-clang-language-standard`
  defcustom `flycheck-gcc-language-standard`

    The language standard to use in `c/c++-clang` and `c/c++-gcc` respectively as string, via the `-std` option.

  defcustom `flycheck-clang-ms-extensions`

    Whether to enable Microsoft extensions to C/C++ in `c/c++-clang`.

  defcustom `flycheck-clang-no-exceptions`
  defcustom `flycheck-gcc-no-exceptions`

    Whether to disable exceptions in `c/c++-clang` and `c/c++-gcc` respectively.

  defcustom `flycheck-clang-no-rtti`
  defcustom `flycheck-gcc-no-rtti`

    Whether to disable RTTI in `c/c++-clang` and `c/c++-gcc` respectively, via `-fno-rtti`.

  defcustom `flycheck-clang-standard-library`

    The name of the standard library to use for `c/c++-clang`, as string.

  defcustom `flycheck-gcc-openmp`

    Whether to enable OpenMP in `c/c++-gcc`.

  defcustom `flycheck-clang-pedantic`
  defcustom `flycheck-gcc-pedantic`

    Whether to warn about language extensions in `c/c++-clang` and `c/c++-gcc` respectively.

  defcustom `flycheck-clang-pedantic-errors`
  defcustom `flycheck-gcc-pedantic-errors`

    Whether to error on language extensions in `c/c++-clang` and `c/c++-gcc` respectively.

  defcustom `flycheck-clang-warnings`
  defcustom `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.

  defcustom `flycheck-cppcheck-checks`

    A list of enabled checks. Each item is the name of a check for the `--enable` option.

  defcustom `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.

  defcustom `flycheck-cppcheck-include-path`

    A list of include directories. Relative paths are relative to the file being checked.

  defcustom `flycheck-cppcheck-standards`

    The C, C++ and/or POSIX standards to use via one or more `--std=` arguments.

  defcustom `flycheck-cppcheck-suppressions`

    The cppcheck suppressions list to use via one or more `--suppress=` arguments.

  defcustom `flycheck-cppcheck-suppressions-file`

    The cppcheck suppressions file to use via the `--suppressions-list=` argument.

## CFEngine

`cfengine`

  Check syntax with CFEngine.

## Chef

`chef-foodcritic`

  Check style in Chef recipes with foodcritic.

  defcustom `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.

`coffee-coffeelint`

  Lint with Coffeelint.

  defcustom `flycheck-coffeelintrc`

    Configuration file for this syntax checker. See Configuration files.

## Coq

`coq`

  Check and proof with the standard Coq compiler.

## CSS

`css-csslint`

  Check syntax and style with CSSLint.

`css-stylelint`

  Syntax-check and lint CSS with stylelint.

  defcustom `flycheck-stylelintrc`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-stylelint-quiet`

    Whether to run stylelint in quiet mode via `--quiet`.

## CUDA C/C++

`cuda-nvcc`

  Checks syntax for CUDA C/C++ using the nvcc nvcc compiler bundled in the NVIDIA Toolkit.

  CUDA C/C++ uses whichever system compiler you have configured, gcc/clang etc, but will sanitise error messages into a standardised format that can be picked up via flycheck. Corner cases may cause some odd behavior.

  defcustom `flycheck-cuda-language-standard`

    The C or C++ Language standard that you want the CUDA compiler to enforce.

  defcustom `flycheck-cuda-includes`

    A list of cuda includes.

  defcustom `flycheck-cuda-include-path`

    A list of include directories for nvcc.

  defcustom `flycheck-cuda-definitions`

    Additional preprocessor definitions for nvcc. Is passed unaltered to both GPU compiler and underlying C/C++ compiler.

## CWL

`cwl`

  Syntax check with (Schema Salad).

  defcustom `flycheck-cwl-schema-path`

    A path for the schema file for Common Workflow Language.

## D

`d-dmd`

  Check syntax and types with (DMD).

  Note

  This syntax checker requires DMD 2.066 or newer.

  defcustom `flycheck-dmd-include-path`

    A list of include directories.

  defcustom `flycheck-dmd-args`

    A list of additional arguments.

See also

flycheck-d-unittest

  Flycheck extension which provides a syntax checker to run D unittests on the fly and report the results with Flycheck.

## Dockerfile

`dockerfile-hadolint`

  Check syntax and code style with hadolint

## Elixir

`elixir-credo`

  Check code style with credo

  defcustom `flycheck-elixir-credo-strict`

    When non-nil, run credo in strict mode, via `--strict`.

## 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.

  defcustom `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.

  defcustom `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`.

  defcustom `flycheck-emacs-lisp-package-user-dir`

    The package directory as string. Has no effect if `flycheck-emacs-lisp-initialize-packages` is nil.

  defcustom `flycheck-emacs-lisp-check-declare`

    If non-nil, also check `declare-function` forms using `check-declare-file`.

`emacs-lisp-checkdoc`

  Check Emacs Lisp documentation conventions with `checkdoc`.

See also

:infonode:`(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.

:infonode:`(elisp)Library Headers`

  Information about library headers for Emacs Lisp files.

## Ember Templates

`ember-template`

  Check your Ember templates with ember-template-lint

  defcustom `flycheck-ember-template-lintrc`

    Configuration file for this syntax checker. See Configuration files.

## Erlang

Flycheck checks Erlang with `erlang-rebar3` in rebar projects and `erlang` otherwise.

`erlang`

  Check Erlang with the standard Erlang compiler.

  defcustom `flycheck-erlang-include-path`

    A list of include directories.

  defcustom `flycheck-erlang-library-path`

    A list of library directories.

`erlang-rebar3`

  Check Erlang with the rebar3 build tool.

  defcustom `flycheck-erlang-rebar3-profile`

    The profile to use when compiling, e.g. “default” or “test”. The default value is nil which will use the test profile in test directories, the eqc profile in eqc directories and the default profile otherwise.

## ERuby

`eruby-erubis`

  Check ERuby with erubis.

`eruby-ruumba`

  Check syntax and lint with Ruumba.

  Note

  This syntax checker requires Ruumba 0.1.7 or newer.

  defcustom `flycheck-ruumba-lint-only`

    Whether to suppress warnings about style issues, via the `--lint` option.

  defcustom `flycheck-ruumbarc`

    Configuration file for this syntax checker. See Configuration files.

## Fortran

`fortran-gfortran`

  Check Fortran syntax and type with GFortran.

  defcustom `flycheck-gfortran-args`

    A list of additional arguments.

  defcustom `flycheck-gfortran-include-path`

    A list of include directories. Relative paths are relative to the file being checked.

  defcustom `flycheck-gfortran-language-standard`

    The language standard to use via the `-std` option.

  defcustom `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.

  defcustom `flycheck-gfortran-warnings`

    A list of warnings enabled via the `-W` option.

## Go

Flycheck checks Go with the following checkers:

1. `go-gofmt`

2. `go-golint`

3. `go-vet`

4. `go-build` or `go-test`

5. `go-errcheck`

6. `go-unconvert`

7. `go-staticcheck`

`go-gofmt`

  Check Go syntax with gofmt.

`go-golint`

  Check Go code style with Golint.

`go-vet`

  Check Go for suspicious code with vet.

  defcustom `flycheck-go-vet-print-functions`

    A list of print-like functions to check calls for format string problems.

  defcustom `flycheck-go-build-tags`

    A list of build tags.

`go-build`

  Check syntax and type with the Go compiler.

  Note

  This syntax checker requires Go 1.6 or newer.

  defcustom `flycheck-go-build-install-deps`

    Whether to install dependencies while checking with `go-build` or `go-test`

  defcustom `flycheck-go-build-tags`

    See `flycheck-go-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.

  defcustom `flycheck-go-build-install-deps`

    See `flycheck-go-build-install-deps`.

  defcustom `flycheck-go-build-tags`

    See `flycheck-go-build-tags`

`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.

  defcustom `flycheck-go-build-tags`

    See `flycheck-go-build-tags`

`go-unconvert`

  Check for unnecessary type conversions with unconvert.

`go-staticcheck`

  Perform static analysis and code linting with staticcheck, the successor to megacheck.

  defcustom `flycheck-go-version`

    staticcheck explicitly supports the last two releases of Go, but supports targeting older versions. Go versions should be specified like, “1.6”, or, “1.11.4”.

## 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`.

See also

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.

  defcustom `flycheck-ghc-args`

    A list of additional arguments.

  defcustom `flycheck-ghc-no-user-package-database`

    Whether to disable the user package database (only for `haskell-ghc`).

  defcustom `flycheck-ghc-stack-use-nix`

    Whether to enable Nix support for Stack (only for `haskell-stack-ghc`).

  defcustom `flycheck-ghc-stack-project-file`

    Allows to override the default `stack.yaml` file for Stack, via `--stack-yaml` (only for `haskell-stack-ghc`).

  defcustom `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`.

  defcustom `flycheck-ghc-search-path`

    A list of module directories, via `-i`.

  defcustom `flycheck-ghc-language-extensions`

    A list of language extensions, via `-X`.

`haskell-hlint`

  Lint with hlint.

  defcustom `flycheck-hlint-args`

    A list of additional arguments.

  defcustom `flycheck-hlint-language-extensions`

    A list of language extensions to enable.

  defcustom `flycheck-hlint-ignore-rules`

    A list of rules to ignore.

  defcustom `flycheck-hlint-hint-packages`

    A list of additional hint packages to include.

  defcustom `flycheck-hlintrc`

    Configuration file for this syntax checker. See Configuration files.

## HTML

`html-tidy`

  Check HTML syntax and style with Tidy HTML5.

  defcustom `flycheck-tidyrc`

    Configuration file for this syntax checker. See Configuration files.

## Javascript

Flycheck checks Javascript with one of `javascript-eslint` or `javascript-jshint`.

Alternatively `javascript-standard` is used instead all of the former ones.

`javascript-eslint`

  Check syntax and lint with ESLint.

  Note

  Flycheck automatically disables this syntax checker if eslint cannot find a valid configuration file for the current buffer.

  defcustom `flycheck-eslint-args`

    A list of additional arguments that are passed to eslint.

  defcustom `flycheck-eslint-rules-directories`

    A list of directories with custom rules.

`javascript-jshint`

  Check syntax and lint with JSHint.

  defcustom `flycheck-jshint-extract-javascript`

    Whether to extract Javascript from HTML before linting.

  defcustom `flycheck-jshintrc`

    Configuration file for this syntax checker. See Configuration files.

`javascript-standard`

  Check syntax and code style with Standard or Semistandard.

## JSON

Flycheck checks JSON with `json-jsonlint`, `json-python-json`, or `json-jq`.

`json-jsonlint`

  Check JSON with jsonlint.

`json-python-json`

  Check JSON with Python’s built-in `json` module.

`json-jq`

  Check JSON with jq.

  This checker accepts multiple consecutive JSON values in a single input, which is useful for jsonlines data.

## Jsonnet

`jsonnet`

  Checks Jsonnet with `jsonnet`.

## Less

`less`

  Check syntax with the Less compiler.

  Note

  This syntax checker requires lessc 1.4 or newer.

`less-stylelint`

  Syntax-check and lint Less with stylelint.

  defcustom `flycheck-stylelintrc`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-stylelint-quiet`

    Whether to run stylelint in quiet mode via `--quiet`.

## LLVM

`llvm-llc`

  Check syntax with llc.

## Lua

Flycheck checks Lua with `lua-luacheck`, falling back to `lua`.

`lua-luacheck`

  Check syntax and lint with Luacheck.

  defcustom `flycheck-luacheckrc`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-luacheck-standards`

    The luacheck standards to use via one or more `--std` arguments.

`lua`

  Check syntax with the Lua compiler.

## Markdown

`markdown-markdownlint-cli`

  Check Markdown with markdownlint-cli.

  defcustom `flycheck-markdown-markdownlint-cli-config`

    Configuration file for this syntax checker. See Configuration files.

`markdown-mdl`

  Check Markdown with markdownlint.

  defcustom `flycheck-markdown-mdl-rules`

    A list of enabled rules.

  defcustom `flycheck-markdown-mdl-tags`

    A list of enabled rule tags.

  defcustom `flycheck-markdown-mdl-style`

    Configuration file for this syntax checker. See Configuration files.

## Nix

`nix`

  Check Nix with nix-instantiate.

`nix-linter`

  Check Nix with nix-linter.

## Opam

`opam`

  Check Opam configuration files with opam lint.

## Perl

Flycheck checks Perl with `perl` and `perl-perlcritic`.

`perl`

  Check syntax with the Perl interpreter.

  defcustom `flycheck-perl-include-path`

    A list of include directories, relative to the file being checked.

  defcustom `flycheck-perl-module-list`

    A list of module names to implicitly use.

`perl-perlcritic`

  Lint and check style with Perl::Critic.

  defcustom `flycheck-perlcritic-severity`

    The severity level as integer for the `--severity`.

  defcustom `flycheck-perlcritic-theme`

    The theme expression, passed as the `--theme` to `perlcritic`.

  defcustom `flycheck-perlcriticrc`

    Configuration file for this syntax checker. See Configuration files.

## PHP

Flycheck checks PHP with `php`, `php-phpmd` and `php-phpcs`.

`php`

  Check syntax with PHP CLI

`php-phpmd`

  Lint with PHP Mess Detector.

  defcustom `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.

  defcustom `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.

## Protobuf

`protobuf-protoc`

  Check syntax using the protoc compiler.

  defcustom `flycheck-protoc-import-path`

    A list of directories to resolve import directives. Relative paths are relative to the path of the buffer being checked.

`protobuf-prototool`

  Lint with prototool.

## 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.

  defcustom `flycheck-puppet-lint-disabled-checks`

    A list of checks to disable.

  defcustom `flycheck-puppet-lint-rc`

    Configuration file for this syntax checker. See Configuration files.

## Python

Flycheck checks Python with `python-flake8` or `python-pylint`, and falls back to `python-pycompile` if neither of those is available.

All Python checkers are invoked indirectly using `python -c ...` (rather than a direct call to `flake8` or `pylint`) to make it easier to switch between Python 2 and 3. For example, you can use `(setq flycheck-python-pylint-executable "python3")` to run `pylint` using Python 3, or `(defvaralias 'flycheck-python-flake8-executable 'python-shell-interpreter)` to run `flake8` through the executable pointed to by `python-shell-interpreter`.

Note

If Flycheck complains about a missing Python checker, make sure that the checker is reachable from `sys.path`, using e.g. `python -m pylint`: often, the issue is that the checker is installed globally but not in the current virtualenv. Alternatively, you can invoke the checker script directly, with `(setq flycheck-python-pylint-executable "pylint")`.

See also

flycheck-pyflakes

  Flycheck extension which adds a syntax checker using Pyflakes.

msherry/flycheck-pycheckers

  Flycheck extension which can use multiple checkers simultaneously – including pyflakes, pep8, flake8, pylint, and mypy 2/3.

`python-flake8`

  Check syntax and lint with flake8.

  Note

  This syntax checker requires flake8 3.0 or newer.

  defcustom `flycheck-flake8-error-level-alist`

    An alist mapping Flake8 error IDs to Flycheck error levels.

  defcustom `flycheck-flake8-maximum-complexity`

    The maximum McCabe complexity allowed for methods.

  defcustom `flycheck-flake8-maximum-line-length`

    The maximum length of lines.

  defcustom `flycheck-flake8rc`

    Configuration file for this syntax checker. See Configuration files.

`python-mypy`

  Type check python with mypy.

  Note

  This syntax checker requires mypy 0.580 or newer.

  defcustom `flycheck-python-mypy-config`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-python-mypy-cache-dir`

    Directory used to write `.mypy_cache` directories.

    Set to `null-device` to disable writing cache directories entirely.

`python-pylint`

  Check syntax and lint with Pylint.

  Note

  This syntax checker requires Pylint 1.0 or newer.

  defcustom `flycheck-pylint-use-symbolic-id`

    Whether to report symbolic (e.g. `no-name-in-module`) or numeric (e.g. `E0611`) message identifiers.

  defcustom `flycheck-pylintrc`

    Configuration file for this syntax checker. See Configuration files.

`python-pycompile`

  Check syntax with Python’s byte compiler (see `py_compile`).

## R

`r-lintr`

  Check syntax and lint with lintr.

  defcustom `flycheck-lintr-caching`

    Whether to enable caching in lintr. On by default; it is not recommended to disable caching unless it causes actual problems.

  defcustom `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.

  defcustom `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`, `ruby-reek` 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.

  defcustom `flycheck-rubocop-lint-only`

    Whether to suppress warnings about style issues, via the `--lint` option.

  defcustom `flycheck-rubocoprc`

    Configuration file for this syntax checker. See Configuration files.

`ruby-standard`

  Check syntax and lint with Ruby Standard.

  Note

  This syntax checker and ruby-rubocop are mutually exclusive, since Standard employs an opinionated rubocop config.

  defcustom `flycheck-rubocop-lint-only`

    See `flycheck-rubocop-lint-only`.

  defcustom `flycheck-ruby-standardrc`

    Configuration file for this syntax checker. See Configuration files.

`ruby-reek`

  Check syntax and lint with reek.

  defcustom `flycheck-reekrc`

    Configuration file for this syntax checker. See Configuration files.

  Note

  `flycheck-reekrc` defaults to `nil`, because Reek can find its own configuration.

`ruby-rubylint`

  Check syntax and lint with ruby-lint.

  Note

  This syntax checker requires ruby-lint 2.0.2 or newer.

  defcustom `flycheck-rubylintrc`

    Configuration file for this syntax checker. See Configuration files.

`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. For Cargo projects, you can also use the clippy linter with `rust-clippy`.

`rust-cargo`
`rust`
`rust-clippy`

  Check syntax and types with the Rust compiler. In a Cargo project the compiler is invoked through `cargo check` to take Cargo dependencies into account.

  `rust-clippy` has no configurable options.

  Note

  `rust-cargo` requires Rust 1.17 or newer. `rust` requires Rust 1.18 or newer. `rust-clippy` requires the nightly version of Rust.

  See also

  flycheck-rust

    Flycheck extension to configure Rust syntax checkers according to the current Cargo project.

  defcustom `flycheck-rust-args`

    A list of additional arguments that are passed to rustc. This option is ignored by `rust-cargo`.

  defcustom `flycheck-cargo-check-args`

    A list of additional arguments passed to the `cargo check` subcommand.

  defcustom `flycheck-rust-check-tests`

    Whether to check test code in Rust.

  defcustom `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.

  defcustom `flycheck-rust-crate-type`

    For `rust-cargo`, the target type as a string, one of `lib`, `bin`, `example`, `test` or `bench`. Can also be nil for projects with a single target.

    For `rust`, the type of the crate to check, as a string for the `--crate-type` option.

  defcustom `flycheck-rust-binary-name`

    The name of the binary to pass to `cargo check --TARGET-TYPE`, as a string.

    For `rust-cargo`, always required unless `flycheck-rust-crate-type` is `lib` or nil, in which case it is ignored.

    Ignored by `rust`.

  defcustom `flycheck-rust-features`

    List of features to activate during build or check.

    The value of this variable is a list of strings denoting features that will be activated to build the target to check. Features will be passed to `cargo check --features=FEATURES`.

    Empty by default.

    Ignored by `rust`.

  defcustom `flycheck-rust-library-path`

    A list of additional library directories. Relative paths are relative to the buffer being checked.

## Sass/SCSS

Flycheck checks SASS with `sass/scss-sass-lint`, falling back to `sass`, and SCSS with `scss-lint` or `scss-stylelint` falling back to `sass/scss-sass-lint` first and then `scss` if neither is available.

`scss-lint`

  Syntax-check and lint SCSS with SCSS-Lint.

  Note

  This syntax checker requires SCSS-Lint 0.43.2 or newer.

  defcustom `flycheck-scss-lintrc`

    Configuration file for this syntax checker. See Configuration files.

`sass/scss-sass-lint`

  Syntax-check and lint Sass/SCSS with SASS-Lint.

  defcustom `flycheck-sass-lintrc`

    Configuration file for this syntax checker. See Configuration files.

`scss-stylelint`

  Syntax-check and lint SCSS with stylelint.

  defcustom `flycheck-stylelintrc`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-stylelint-quiet`

    Whether to run stylelint in quiet mode via `--quiet`.

`sass`
`scss`

  Check SASS and SCSS respectively with the SCSS compiler.

  defcustom `flycheck-sass-compass`
  defcustom `flycheck-scss-compass`

    Whether to enable the Compass CSS framework with `--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.

  defcustom `flycheck-scalastylerc`

    Configuration file for this syntax checker. See Configuration files.

  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.

  > defcustom `flycheck-scheme-chicken-args`

  A list of additional options.

Important

Geiser must be installed and active for this checker to work.

## 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.

  defcustom `flycheck-sh-bash-args`

    A list of additional arguments that are passed to bash.

`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.

  defcustom `flycheck-shellcheck-excluded-warnings`

    A list of excluded warnings.

  defcustom `flycheck-shellcheck-follow-sources`

    Allow shellcheck to read sourced files.

## 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.

## systemd Unit Configuration

`systemd-analyze`

  Check systemd unit configuration file syntax with systemd-analyze.

## Tcl

`tcl-nagelfar`

  Check Tcl syntax with Nagelfar.

## Terraform

`terraform`

  Check Terraform syntax with terraform fmt

`terraform-tflint`

  Check Terraform with tflint

  defcustom `flycheck-tflint-variable-files`

    A list of files to resolve terraform variables. Relative paths are relative to the path of the buffer being checked.

## Text

`proselint`

  Check English prose with Proselint.

`textlint`

  Check prose with textlint.

  defcustom `flycheck-textlint-config`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-textlint-plugin-alist`

    An alist mapping major modes to textlint plugins.

    Flycheck currently supports the following textlint plugins on NPM:

    - textlint-plugin-rst

    - textlint-plugin-html

    - textlint-plugin-latex

    - textlint-plugin-asciidoctor (as well as other AsciiDoc plugins)

  Note

  textlint plugins need to be installed separately.

## TeX/LaTeX

Flycheck checks TeX and LaTeX with either `tex-chktex` or `tex-lacheck`.

`tex-chktex`

  Check style with ChkTeX.

  defcustom `flycheck-chktexrc`

    Configuration file for this syntax checker. See Configuration files.

`tex-lacheck`

  Check style with Lacheck.

## Texinfo

`texinfo`

  Check syntax with makeinfo from Texinfo.

## TypeScript

`typescript-tslint`

  Check syntax and style with TSLint.

  defcustom `flycheck-typescript-tslint-config`

    Configuration file for this syntax checker. See Configuration files.

  defcustom `flycheck-typescript-tslint-rulesdir`

    Additional rules directory, for user created rules.

  defcustom `flycheck-tslint-args`

    A list of additional arguments that are passed to tslint.

## Verilog

`verilog-verilator`

  Check syntax with Verilator.

  defcustom `flycheck-verilator-include-path`

    A list of include directories. Relative paths are relative to the file being checked.

## VHDL

`vhdl-ghdl`

  Check syntax with GHDL.

  defcustom `flycheck-ghdl-language-standard`

    The language standard to use as string.

  defcustom `flycheck-ghdl-workdir`

    The directory to use for the file library.

  defcustom `flycheck-ghdl-ieee-library`

    The standard to use for the IEEE library.

## XML

Flycheck checks XML with `xml-xmlstarlet` or `xml-xmllint`.

`xml-xmlstarlet`

  Check syntax with XMLStarlet.

  defcustom `flycheck-xml-xmlstarlet-xsd-path`
  defcustom `flycheck-xml-xmllint-xsd-path`

    Location of XSD schema to validate against for `xml-xmlstarlet` and `xml-xmllint` respectively.

`xml-xmllint`

  Check syntax with xmllint from Libxml2.

## YAML

Flycheck checks YAML with `yaml-jsyaml`, `yaml-ruby` or ‘yaml-yamllint’.

`yaml-jsyaml`

  Check syntax with js-yaml.

`yaml-ruby`

  Check syntax with Ruby’s YAML parser.

`yaml-yamllint`

  Check syntax with yamllint.

  defcustom `flycheck-yamllintrc`

    Configuration file for this syntax checker. See Configuration files.