Repolode
dense-analysis

dense-analysis/ale

A Vim and Neovim plugin that lints code asynchronously while you type, runs fixers like prettier and eslint, and acts as an LSP client.

Stars
14,025
Forks
1,487
Open issues
591
Last commit
18 days ago

What is it?

ALE (Asynchronous Lint Engine) is a plugin for Neovim 0.7+ and Vim 8.2+ that checks syntax and semantic errors in text files while you edit them. Linters run in the background on buffer contents, so problems appear before the file is saved, and the editor stays responsive during checks.

Beyond linting, ALE runs command-line formatters and fixers non-blockingly through the :ALEFix command, with tools such as prettier, eslint and autopep8. It also acts as a Language Server Protocol client, providing diagnostics, go-to-definition, find references, hover, symbol search, rename and code actions, plus built-in or nvim-cmp/Deoplete-based completion.

ALE is written in Vim script with no external runtime dependencies, and it only loads the LSP code when it is needed. It can be installed through common plugin managers or by cloning into the Vim package directory.

Key features

  • 01Runs linters asynchronously on buffer contents while you type
  • 02Fixes files with command-line tools such as prettier and eslint via :ALEFix
  • 03Acts as an LSP client for diagnostics, go-to-definition and references
  • 04Provides hover, symbol search, rename and code actions
  • 05Works in both Vim 8.2+ and Neovim 0.7+ with no external dependencies

Use cases

  • Seeing lint errors in Vim or Neovim before saving a file
  • Auto-formatting JavaScript or Python files on save with prettier or autopep8
  • Getting LSP features like go-to-definition in a terminal-based editor setup

Quick start

  1. 1

    Create the Vim package directory

    mkdir -p ~/.vim/pack/git-plugins/start
  2. 2

    Clone ALE into the package directory

    git clone --depth 1 https://github.com/dense-analysis/ale.git ~/.vim/pack/git-plugins/start/ale

Things to know

  • Requires Vim 8.2+ or Neovim 0.7+.
  • Linters and fixers must be installed separately before ALE can use them.

In collections

Topics

FAQ

What is ale?
A Vim and Neovim plugin that lints code asynchronously while you type, runs fixers like prettier and eslint, and acts as an LSP client. ALE (Asynchronous Lint Engine) is a plugin for Neovim 0.7+ and Vim 8.2+ that checks syntax and semantic errors in text files while you edit them. Linters run in the background on buffer contents, so problems appear before the file is saved, and the editor stays responsive during checks.
Is ale free to use? What license does it have?
ale is open source under the BSD-2-Clause license. Check the license terms before using it in commercial products.
Is ale still maintained?
Actively maintained. The last commit to ale was on Oct 20, 2026.
What can I use ale for?
Seeing lint errors in Vim or Neovim before saving a file Auto-formatting JavaScript or Python files on save with prettier or autopep8 Getting LSP features like go-to-definition in a terminal-based editor setup
How do I install ale?
Create the Vim package directory: mkdir -p ~/.vim/pack/git-plugins/start Clone ALE into the package directory: git clone --depth 1 https://github.com/dense-analysis/ale.git ~/.vim/pack/git-plugins/start/ale
Where can I get ale?
The source code and installation instructions are on GitHub: https://github.com/dense-analysis/ale

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects