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.

User option flycheck-gnat-args

A list of additional options.

User option flycheck-gnat-include-path

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

User option flycheck-gnat-language-standard

The language standard to use as string.

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

User option flycheck-clang-args
User option flycheck-gcc-args

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

User option flycheck-clang-blocks

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

User option flycheck-clang-definitions
User option flycheck-gcc-definitions

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

User option flycheck-clang-include-path
User option flycheck-gcc-include-path

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

User option flycheck-clang-includes
User option flycheck-gcc-includes

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

User option flycheck-clang-language-standard
User option flycheck-gcc-language-standard

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

User option flycheck-clang-ms-extensions

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

User option flycheck-clang-no-exceptions
User option flycheck-gcc-no-exceptions

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

User option flycheck-clang-no-rtti
User option flycheck-gcc-no-rtti

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

User option flycheck-clang-standard-library

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

User option flycheck-gcc-openmp

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

User option flycheck-clang-pedantic
User option flycheck-gcc-pedantic

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

User option flycheck-clang-pedantic-errors
User option flycheck-gcc-pedantic-errors

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

User option flycheck-clang-warnings
User option 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.

User option flycheck-cppcheck-checks

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

User option flycheck-cppcheck-inconclusive

Whether to enable inconclusive checks. These checks may yield more false positives than normal checks.

User option flycheck-cppcheck-include-path

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

User option flycheck-cppcheck-language-standard

The C or C++ language standard to use via --std=.

CFEngine

cfengine

Check syntax with CFEngine.

Chef

chef-foodcritic

Check style in Chef recipes with foodcritic.

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

User option flycheck-coffeelintrc

Configuration file for this syntax checker. See flycheck-config-files.

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

User option flycheck-dmd-include-path

A list of include directories.

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

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.

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

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

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

See also

Documentation Tips(elisp)
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.
Library Headers(elisp)
Information about library headers for Emacs Lisp files.

Erlang

erlang

Check Erlang with the standard Erlang compiler.

User option flycheck-erlang-include-path

A list of include directories.

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

User option flycheck-gfortran-args

A list of additional arguments.

User option flycheck-gfortran-include-path

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

User option flycheck-gfortran-language-standard

The language standard to use via the -std option.

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

User option 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
go-gofmt

Check Go syntax with gofmt.

go-golint

Check Go code style with Golint.

go-vet

Check Go for suspicious code with vet.

User option flycheck-go-vet-print-functions

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

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

User option flycheck-go-build-install-deps

Whether to install dependencies while checking.

User option flycheck-go-build-tags

A list of build tags.

go-test

Check syntax and types of Go tests with the Go compiler.

go-errcheck

Check for unhandled error returns in Go with errcheck.

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.

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.

User option flycheck-ghc-args

A list of additional arguments.

User option flycheck-ghc-no-user-package-database

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

User option flycheck-ghc-stack-use-nix

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

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

User option flycheck-ghc-search-path

A list of module directories, via -i.

User option flycheck-ghc-language-extensions

A list of language extensions, via -X.

haskell-hlint

Lint with hlint.

User option flycheck-hlint-args

A list of additional arguments.

User option flycheck-hlint-language-extensions

A list of language extensions to enable.

User option flycheck-hlint-ignore-rules

A list of rules to ignore.

User option flycheck-hlint-hint-packages

A list of additional hint packages to include.

User option flycheck-hlintrc

Configuration file for this syntax checker. See flycheck-config-files.

HTML

html-tidy

Check HTML syntax and style with Tidy HTML5.

User option flycheck-tidyrc

Configuration file for this syntax checker. See flycheck-config-files.

Jade

jade

Check syntax using the Jade compiler.

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.

User option flycheck-eslint-rulesdir

A directory with custom rules.

User option flycheck-eslintrc

Configuration file for this syntax checker. See flycheck-config-files.

javascript-jshint

Check syntax and lint with JSHint.

User option flycheck-jshint-extract-javascript

Whether to extract Javascript from HTML before linting.

User option flycheck-jshintrc

Configuration file for this syntax checker. See flycheck-config-files.

javascript-gjslint

Lint with Closure Linter.

User option flycheck-gjslintrc

Configuration file for this syntax checker. See flycheck-config-files.

javascript-jscs

Check code style with JSCS.

User option flycheck-jscsrc

Configuration file for this syntax checker. See flycheck-config-files.

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

Less

less

Check syntax with the Less compiler.

Lua

Flycheck checks Lua with luacheck, falling back to lua.

luacheck

Check syntax and lint with Luacheck.

User option flycheck-luacheckrc

Configuration file for this syntax checker. See flycheck-config-files.

lua

Check syntax with the Lua compiler.

Markdown

markdown-mdl

Check Markdown with markdownlint.

User option flycheck-markdown-mdl-rules

A list of enabled rules.

User option flycheck-markdown-mdl-tags

A list of enabled rule tags.

User option flycheck-markdown-mdl-style

Configuration file for this syntax checker. See flycheck-config-files.

Perl

Flycheck checks Perl with perl and perl-perlcritic.

perl

Check syntax with the Perl interpreter.

User option flycheck-perl-include-path

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

perl-perlcritic

Lint and check style with Perl::Critic.

User option flycheck-perlcritic-severity

The severity level as integer for the --severity.

User option flycheck-perlcriticrc

Configuration file for this syntax checker. See flycheck-config-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.

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

Needs PHP Code Sniffer 2.6 or newer.

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

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.

User option flycheck-puppet-lint-disabled-checks

A list of checks to disable.

User option flycheck-puppet-lint-rc

Configuration file for this syntax checker. See flycheck-config-files.

Python

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

See also

flycheck-pyflakes
Flycheck extension which adds a syntax checker using Pyflakes.
python-flake8

Check syntax and lint with flake8.

User option flycheck-flake8-error-level-alist

An alist mapping Flake8 error IDs to Flycheck error levels.

User option flycheck-flake8-maximum-complexity

The maximum McCabe complexity allowed for methods.

User option flycheck-flake8-maximum-line-length

The maximum length of lines.

User option flycheck-flake8rc

Configuration file for this syntax checker. See flycheck-config-files.

python-pylint

Check syntax and lint with Pylint.

User option flycheck-pylint-use-symbolic-id

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

User option flycheck-pylintrc

Configuration file for this syntax checker. See flycheck-config-files.

python-pycompile

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

R

r-lintr

Check syntax and lint with lintr.

User option flycheck-lintr-caching

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

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

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.

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

User option flycheck-rubocop-lint-only

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

User option flycheck-rubocoprc

Configuration file for this syntax checker. See flycheck-config-files.

ruby-rubylint

Check syntax and lint with ruby-lint.

User option flycheck-rubylintrc

Configuration file for this syntax checker. See flycheck-config-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.

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.

See also

flycheck-rust
Flycheck extension to configure Rust syntax checkers according to the current Cargo project.
User option flycheck-rust-args

A list of additional arguments.

User option flycheck-rust-check-tests

Whether to check test code in Rust.

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

User option flycheck-rust-crate-type

The type of the crate to check, as string for the --crate-type option.

User option flycheck-rust-library-path

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

Sass

sass

Check syntax with the Sass compiler.

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

User option flycheck-scalastylerc

Configuration file for this syntax checker. See flycheck-config-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.

SCSS

Flycheck checks SCSS with scss-lint, falling back to scss.

scss-lint

Check syntax and lint with SCSS-Lint.

User option flycheck-scss-lintrc

Configuration file for this syntax checker. See flycheck-config-files.

scss

Check syntax with the SCSS compiler.

User option flycheck-scss-compass

Whether to enable the Compass CSS framework with --compass.

Shell scripting languages

Flycheck checks various shell scripting languages:

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.

User option flycheck-shellcheck-excluded-warnings

A list of excluded warnings.

Slim

slim

Check Slim using the Slim compiler.

SQL

sql-sqlint

Check SQL syntax with Sqlint.

TeX/LaTeX

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

tex-chktex

Check style with ChkTeX.

User option flycheck-chktexrc

Configuration file for this syntax checker. See flycheck-config-files.

tex-lacheck

Check style with Lacheck.

Texinfo

texinfo

Check syntax with makeinfo from Texinfo.

TypeScript

typescript-tslint

Check syntax and style with TSLint.

User option flycheck-typescript-tslint-config

Configuration file for this syntax checker. See flycheck-config-files.

Important

A configuration file is mandatory for this syntax checker. If flycheck-typescript-tslint-config is not set or the configuration file not found this syntax checker will not be used.

User option flycheck-typescript-tslint-rulesdir

Additional rules directory, for user created rules.

Verilog

verilog-verilator

Check syntax with Verilator.

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