Asynchronous Vim Lint Engine
ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking and semantic errors) in Vim while you edit your text files, and acts as a Vim Language Server Protocol client. ALE makes use of NeoVim and Vim job control functions and timers to run linters on the contents of text buffers and return errors as text is changed in Vim. This allows for displaying warnings and errors in files being edited in Vim before files have been saved back to a filesystem. In other words, this plugin allows you to lint while you type.