diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 213 |
1 files changed, 130 insertions, 83 deletions
@@ -15,7 +15,25 @@ back to a filesystem. In other words, this plugin allows you to lint while you type. -## Supported Languages and Tools +## Table of Contents + +1. [Supported Languages and Tools](#supported-languages) +2. [Usage](#usage) +3. [Installation](#installation) + 1. [Installation with Pathogen](#installation-with-pathogen) + 2. [Installation with Vundle](#installation-with-vundle) + 3. [Manual Installation](#manual-installation) +4. [FAQ](#faq) + 1. [How do I disable particular linters?](#faq-disable-linters) + 2. [How can I keep the sign gutter open?](#faq-disable-linters) + 3. [How can I change the signs ALE uses?](#faq-change-signs) + 4. [How can I show errors or warnings in my statusline?](#faq-statusline) + 5. [How can I change the format for echo messages?](#faq-echo-format) + 6. [How can I execute some code when ALE stops linting?](#faq-autocmd) + +<a name="supported-languages"></a> + +## 1. Supported Languages and Tools This plugin supports the following languages and tools. All available tools will be run in combination, so they can be complementary. @@ -45,6 +63,8 @@ name. That seems to be the fairest way to arrange this table. | JavaScript | [eslint](http://eslint.org/), [jscs](http://jscs.info/), [jshint](http://jshint.com/) | | JSON | [jsonlint](http://zaa.ch/jsonlint/) | | Lua | [luacheck](https://github.com/mpeterv/luacheck) | +| Markdown | [mdl](https://github.com/mivok/markdownlint) | +| MATLAB | [mlint](https://www.mathworks.com/help/matlab/ref/mlint.html) | | Perl | [perl -c](https://perl.org/), [perl-critic](https://metacpan.org/pod/Perl::Critic) | | PHP | [php -l](https://secure.php.net/), [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) | | Pug | [pug-lint](https://github.com/pugjs/pug-lint) | @@ -66,7 +86,9 @@ or [create a pull request](https://github.com/w0rp/ale/pulls). If your tool can read from stdin or you have code to suggest which is good, support can be happily added for more tools. -## Usage +<a name="usage"></a> + +## 2. Usage Once this plugin is installed, while editing your files in supported languages and tools which have been correctly installed, @@ -75,32 +97,90 @@ programs for checking the syntax and semantics of your programs. By default, linters will be re-run in the background to check your syntax when you open new buffers or as you make edits to your files. -### Options - -A full list of options supported for configuring this plugin in your -vimrc file for all given linters is as follows: - -| Option | Description | Default | -| ------ | ----------- | ------- | -| `g:ale_echo_cursor` | echo errors when the cursor is over them | `1` | -| `g:ale_echo_msg_format` | string format to use for the echoed message | `'%s'` | -| `g:ale_echo_msg_error_str` | string used for error severity in echoed message | `'Error'` | -| `g:ale_echo_msg_warning_str` | string used for warning severity in echoed message | `'Warning'` | -| `g:ale_lint_delay` | milliseconds to wait before linting | `200` | -| `g:ale_linters` | a dictionary of linters to whitelist | _not set_ | -| `g:ale_lint_on_enter` | lint when opening a file | `1` | -| `g:ale_lint_on_save` | lint when saving a file | `0` | -| `g:ale_lint_on_text_changed` | lint while typing | `1` | -| `g:ale_set_loclist` | set the loclist with errors | `1` | -| `g:ale_set_signs` | set gutter signs with error markers | `has('signs')` | -| `g:ale_sign_column_always` | always show the sign gutter | `0` | -| `g:ale_sign_error` | the text to use for errors in the gutter | `'>>'` | -| `g:ale_sign_offset` | an offset for sign ids | `1000000` | -| `g:ale_sign_warning` | the text to use for warnings in the gutter | `'--'` | -| `g:ale_statusline_format` | string format to use in statusline flag | `['%d error(s)', '%d warning(s)', 'OK']` | -| `g:ale_warn_about_trailing_whitespace` | enable trailing whitespace warnings for some linters | `1` | - -### Selecting Particular Linters +The behaviour of linting can be configured with a variety of options, +documented in [the Vim help file](doc/ale.txt). For more information on the +options ALE offers, consult `:help ale-options` for global options and `:help +ale-linter-options` for options specified to particular linters. + +<a name="installation"></a> + +## 3. Installation + +To install this plugin, you should use one of the following methods. +For Windows users, replace usage of the Unix `~/.vim` directory with +`%USERPROFILE%\_vim`, or another directory if you have configured +Vim differently. On Windows, your `~/.vimrc` file will be similarly +stored in `%USERPROFILE%\_vimrc`. + +<a name="installation-with-pathogen"></a> + +### 3.i. Installation with Pathogen + +To install this module with [Pathogen](https://github.com/tpope/vim-pathogen), +you should clone this repository to your bundle directory, and ensure +you have the line `execute pathogen#infect()` in your `~/.vimrc` file. +You can run the following commands in your terminal to do so: + +```bash +cd ~/.vim/bundle +git clone https://github.com/w0rp/ale.git +``` + +<a name="installation-with-vundle"></a> + +### 3.ii. Installation with Vundle + +You can install this plugin using [Vundle](https://github.com/VundleVim/Vundle.vim) +by using the path on GitHub for this repository. + +```vim +Plugin 'w0rp/ale' +``` + +See the Vundle documentation for more information. + +<a name="manual-installation"></a> + +### 3.iii. Manual Installation + +For installation without a package manager, you can clone this git repository +into a bundle directory as with pathogen, and add the repository to your +runtime path yourself. First clone the repository. + +```bash +cd ~/.vim/bundle +git clone https://github.com/w0rp/ale.git +``` + +Then, modify your `~/.vimrc` file to add this plugin to your runtime path. + +```vim +set nocompatible +filetype off + +let &runtimepath.=',~/.vim/bundle/ale' + +filetype plugin on +``` + +You can add the following line to generate documentation tags automatically, +if you don't have something similar already, so you can use the `:help` command +to consult ALE's online documentation: + +```vim +silent! helptags ALL +``` + +Because the author of this plugin is a weird nerd, this is his preferred +installation method. + +<a name="faq"></a> + +## 4. FAQ + +<a name="faq-disable-linters"></a> + +### 4.i. How do I disable particular linters? By default, all available tools for all supported languages will be run. If you want to only select a subset of the tools, simply create a @@ -122,15 +202,20 @@ This plugin will look for linters in the [`ale_linters`](ale_linters) directory. Each directory within corresponds to a particular filetype in Vim, and each file in each directory corresponds to the name of a particular linter. -### Always showing gutter +<a name="faq-keep-signs"></a> -You can keep the sign gutter open at all times by setting the `g:ale_sign_column_always` to 1 +### 4.ii. How can I keep the sign gutter open? + +You can keep the sign gutter open at all times by setting the +`g:ale_sign_column_always` to 1 ```vim let g:ale_sign_column_always = 1 ``` -### Customize signs +<a name="faq-change-signs"></a> + +### 4.iii. How can I change the signs ALE uses? Use these options to specify what text should be used for signs: @@ -139,7 +224,9 @@ let g:ale_sign_error = '>>' let g:ale_sign_warning = '--' ``` -### Statusline +<a name="faq-statusline"></a> + +### 4.iv. How can I show errors or warnings in my statusline? You can use `ALEGetStatusLine()` to integrate ALE into vim statusline. To enable it, you should have in your `statusline` settings @@ -164,8 +251,9 @@ let g:ale_statusline_format = ['⨉ %d', '⚠ %d', '⬥ ok'] ![Statusline with issues](img/issues.png) ![Statusline with no issues](img/no_issues.png) +<a name="faq-echo-format"></a> -### Customize echoed message +### 4.v. How can I change the format for echo messages? There are 3 global options that allow customizing the echoed message. @@ -188,58 +276,17 @@ Will give you: ![Echoed message](img/echo.png) -## Installation +<a name="faq-autocmd"></a> -To install this plugin, you should use one of the following methods. -For Windows users, replace usage of the Unix `~/.vim` directory with -`%USERPROFILE%\_vim`, or another directory if you have configured -Vim differently. On Windows, your `~/.vimrc` file will be similarly -stored in `%USERPROFILE%\_vimrc`. - -### Installation with Pathogen - -To install this module with [Pathogen](https://github.com/tpope/vim-pathogen), -you should clone this repository to your bundle directory, and ensure -you have the line `execute pathogen#infect()` in your `~/.vimrc` file. -You can run the following commands in your terminal to do so: +### 4.vi. How can I execute some code when ALE stops linting? -```bash -cd ~/.vim/bundle -git clone https://github.com/w0rp/ale.git -``` - -### Installation with Vundle - -You can install this plugin using [Vundle](https://github.com/VundleVim/Vundle.vim) -by using the path on GitHub for this repository. - -```vim -Plugin 'w0rp/ale' -``` - -See the Vundle documentation for more information. - -### Manual Installation - -For installation without a package manager, you can clone this git repository -into a bundle directory as with pathogen, and add the repository to your -runtime path yourself. First clone the repository. - -```bash -cd ~/.vim/bundle -git clone https://github.com/w0rp/ale.git -``` - -Then, modify your `~/.vimrc` file to add this plugin to your runtime path. +ALE runs its own [autocmd](http://vimdoc.sourceforge.net/htmldoc/autocmd.html) +event whenever has a linter has been successfully executed and processed. This +autocmd event can be used to call arbitrary functions after ALE stops linting. ```vim -set nocompatible -filetype off - -let &runtimepath.=',~/.vim/bundle/ale' - -filetype plugin on +augroup YourGroup + autocmd! + autocmd User ALELint call YourFunction() +augroup END ``` - -Because the author of this plugin is a weird nerd, this is his preferred -installation method. |