# Recommended extensions

The Emacs community has produced a number of extensions to Flycheck. This page lists all that we know of and can safely recommend to our users.

Official extensions are (co-)maintained by the Flycheck maintainers who will take care to update official extensions in case of breaking changes in Flycheck and work to provide extra API for extensions if needed. If you’d like to make your extension an official one and move it into the Flycheck Github organisation please contact a maintainer.

If you do know extensions not in this list, or would like to see your own extension here, please feel free to add it.

We would like to thank all people who created and contributed to Flycheck extensions for their awesome work. Without your help and support Flycheck would not be what it is today.

## User interface

These extensions change Flycheck’s user interface:

- flycheck-color-mode-line (official) colors the mode line according to the Flycheck status.

- flycheck-pos-tip (official) shows Flycheck error messages in a graphical popup.

- liblit/flycheck-status-emoji adds cute emoji (e.g. 😱 for errors) to Flycheck’s mode line status.

- Wilfred/flycheck-title shows Flycheck error messages in the frame title.

- flycheck-inline shows Flycheck error messages in the buffer, directly below their origin.

## Language support

These extensions add support for new languages, or improve support for built-in languages. They are grouped by the corresponding language so you can jump directly to the languages that interest you:

Languages

- Cadence

- Clojure

- C/C++/Objective C

- D

- Elixir

- Emacs Lisp

- Julia

- Haskell

- Ledger

- Mercury

- OCaml

- PHP

- Python

- Rust

- Shell scripts

### Cadence

- cmarqu/flycheck-hdl-irun adds a syntax checker for hardware description languages supported by Cadence IES/irun.

### Clojure

- clojure-emacs/squiggly-clojure adds syntax checking for Clojure.

### C/C++/Objective C

- Wilfred/flycheck-pkg-config configures Flycheck to use settings from pkg-config when checking C/C++.

- Sarcasm/flycheck-irony adds a Flycheck syntax checker for C, C++ and Objective C using Irony Mode.

### D

- flycheck-d-unittest (official) adds a Flycheck checker to run unit tests for D programs on the fly.

### Elixir

- tomekowal/flycheck-mix adds an Elixir syntax checker using the `mix` build tool.

### Emacs Lisp

- flycheck-cask (official) makes Flycheck use Cask packages for Emacs Lisp syntax checking in Cask projects.

- purcell/flycheck-package checks Emacs Lisp packages for common problems with package metadata.

### Julia

- gdkrmr/flycheck-julia makes linting for Julia available via Lint.jl.

### Haskell

- flycheck-haskell (official) configures Flycheck from the Cabal settings and sandbox in Haskell projects.

### Ledger

- purcell/flycheck-ledger adds a syntax checker for the Ledger accounting tool.

### Mercury

- flycheck-mercury (official) adds a syntax checker for the Mercury language.

### OCaml

- flycheck-ocaml (official) adds a syntax checker for OCaml using the Merlin backend.

### PHP

- emacs-php/phpstan.el adds a PHP static analyzer using PHPStan.

### Python

- Wilfred/flycheck-pyflakes adds a Python syntax checker using Pyflakes.

- msherry/flycheck-pycheckers adds a checker for Python that can run multiple syntax checkers simultaneously (Pyflakes, PEP8, Mypy 2/3, etc.).

- chocoelho/flycheck-prospector adds Prospector checker for Python syntax.

### Rust

- flycheck-rust (official) configures Flycheck according to the Cargo settings and layouts of the current Rust project.

### Shell scripts

- Gnouc/flycheck-checkbashisms adds a shell script syntax checker using `checkbashisms` which is part of Debian devscripts and checks for common Bash constructs in POSIX shell scripts.