summaryrefslogtreecommitdiff
path: root/doc/ale.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ale.txt')
-rw-r--r--doc/ale.txt208
1 files changed, 204 insertions, 4 deletions
diff --git a/doc/ale.txt b/doc/ale.txt
index 5541236f..291e90fb 100644
--- a/doc/ale.txt
+++ b/doc/ale.txt
@@ -9,7 +9,8 @@ CONTENTS *ale-contents*
1. Introduction.........................|ale-introduction|
2. Supported Languages & Tools..........|ale-support|
3. Linting..............................|ale-lint|
- 3.1 Other Sources.....................|ale-lint-other-sources|
+ 3.1 Adding Language Servers...........|ale-lint-language-servers|
+ 3.2 Other Sources.....................|ale-lint-other-sources|
4. Fixing Problems......................|ale-fix|
5. Language Server Protocol Support.....|ale-lsp|
5.1 Completion........................|ale-completion|
@@ -147,7 +148,48 @@ ALE offers several options for controlling which linters are run.
-------------------------------------------------------------------------------
-3.1 Other Sources *ale-lint-other-sources*
+3.1 Adding Language Servers *ale-lint-language-servers*
+
+ALE comes with many default configurations for language servers, so they can
+be detected and run automatically. ALE can connect to other language servers
+by defining a new linter for a filetype. New linters can be defined in |vimrc|,
+in plugin files, or `ale_linters` directories in |runtimepath|.
+
+See |ale-linter-loading-behavior| for more information on loading linters.
+
+A minimal configuration for a language server linter might look so. >
+
+ call ale#linter#Define('filetype_here', {
+ \ 'name': 'any_name_you_want',
+ \ 'lsp': 'stdio',
+ \ 'executable': '/path/to/executable',
+ \ 'command': '%e run',
+ \ 'project_root': '/path/to/root_of_project',
+ \})
+<
+For language servers that use a TCP socket connection, you should define the
+address to connect to instead. >
+
+ call ale#linter#Define('filetype_here', {
+ \ 'name': 'any_name_you_want',
+ \ 'lsp': 'socket',
+ \ 'address': 'servername:1234',
+ \ 'project_root': '/path/to/root_of_project',
+ \})
+<
+ Most of the options for a language server can be replaced with a |Funcref|
+ for a function accepting a buffer number for dynamically computing values
+ such as the executable path, the project path, the server address, etc,
+ most of which can also be determined based on executing some other
+ asynchronous task. See |ale#command#Run()| for computing linter options
+ based on asynchronous results.
+
+ See |ale#linter#Define()| for a detailed explanation of all of the options
+ for configuring linters.
+
+
+-------------------------------------------------------------------------------
+3.2 Other Sources *ale-lint-other-sources*
Problems for a buffer can be taken from other sources and rendered by ALE.
This allows ALE to be used in combination with other plugins which also want
@@ -341,6 +383,17 @@ completion source for Deoplete is named `'ale'`, and should enabled
automatically if Deoplete is enabled and configured correctly. Deoplete
integration should not be combined with ALE's own implementation.
+ *ale-asyncomplete-integration*
+
+ALE additionally integrates with asyncomplete.vim for offering automatic
+completion data. ALE's asyncomplete source requires registration and should
+use the defaults provided by the|asyncomplete#sources#ale#get_source_options| function >
+
+ " Use ALE's function for asyncomplete defaults
+ au User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#ale#get_source_options({
+ \ 'priority': 10, " Provide your own overrides here
+ \ }))
+>
ALE also offers its own completion implementation, which does not require any
other plugins. Suggestions will be made while you type after completion is
enabled. ALE's own completion implementation can be enabled by setting
@@ -365,6 +418,10 @@ The |ALEComplete| command can be used to show completion suggestions manually,
even when |g:ale_completion_enabled| is set to `0`. For manually requesting
completion information with Deoplete, consult Deoplete's documentation.
+When working with TypeScript files, ALE by can support automatic imports
+from external modules. This behavior can be enabled by setting the
+|g:ale_completion_tsserver_autoimport| variable to `1`.
+
*ale-completion-completeopt-bug*
ALE Automatic completion implementation replaces |completeopt| before opening
@@ -586,6 +643,16 @@ b:ale_completion_enabled *b:ale_completion_enabled*
See |ale-completion|
+g:ale_completion_tsserver_autoimport *g:ale_completion_tsserver_autoimport*
+
+ Type: Number
+ Default: `0`
+
+ When this option is set to `0`, ALE will not try to automatically import
+ completion results from external modules. It can be enabled by setting it
+ to `1`.
+
+
g:ale_completion_excluded_words *g:ale_completion_excluded_words*
*b:ale_completion_excluded_words*
Type: |List|
@@ -734,6 +801,15 @@ g:ale_echo_msg_info_str *g:ale_echo_msg_info_str*
The string used for `%severity%` for info. See |g:ale_echo_msg_format|
+g:ale_echo_msg_log_str *g:ale_echo_msg_log_str*
+
+ Type: |String|
+ Default: `'Log'`
+
+ The string used for `%severity%` for log, used only for handling LSP show
+ message requests. See |g:ale_lsp_show_message_format|
+
+
g:ale_echo_msg_warning_str *g:ale_echo_msg_warning_str*
Type: |String|
@@ -1016,9 +1092,12 @@ g:ale_linter_aliases *g:ale_linter_aliases*
{
\ 'Dockerfile': 'dockerfile',
\ 'csh': 'sh',
+ \ 'javascriptreact': ['javascript', 'jsx'],
\ 'plaintex': 'tex',
\ 'rmarkdown': 'r',
+ \ 'rmd': 'r',
\ 'systemverilog': 'verilog',
+ \ 'typescriptreact': ['typescript', 'tsx'],
\ 'verilog_systemverilog': ['verilog_systemverilog', 'verilog'],
\ 'vimwiki': 'markdown',
\ 'vue': ['vue', 'javascript'],
@@ -1181,6 +1260,47 @@ b:ale_loclist_msg_format *b:ale_loclist_msg_format*
The strings for configuring `%severity%` are also used for this option.
+
+g:ale_lsp_show_message_format *g:ale_lsp_show_message_format*
+
+ Type: |String|
+ Default: `'%severity%:%linter%: %s'`
+
+ This variable defines the format that messages received from an LSP will
+ have when echoed. The following sequences of characters will be replaced.
+
+ `%s` - replaced with the message text
+ `%linter%` - replaced with the name of the linter
+ `%severity%` - replaced with the severity of the message
+
+ The strings for `%severity%` levels "error", "info" and "warning" are shared
+ with |g:ale_echo_msg_format|. Severity "log" is unique to
+ |g:ale_lsp_show_message_format| and it can be configured via
+
+ |g:ale_echo_msg_log_str| - Defaults to `'Log'`
+
+ Please note that |g:ale_lsp_show_message_format| *can not* be configured
+ separately for each buffer like |g:ale_echo_msg_format| can.
+
+
+g:ale_lsp_show_message_severity *g:ale_lsp_show_message_severity*
+
+ Type: |String|
+ Default: `'error'`
+
+ This variable defines the minimum severity level an LSP message needs to be
+ displayed. Messages below this level are discarded; please note that
+ messages with `Log` severity level are always discarded.
+
+ Possible values follow the LSP spec `MessageType` definition:
+
+ `'error'` - Displays only errors.
+ `'warning'` - Displays errors and warnings.
+ `'information'` - Displays errors, warnings and infos
+ `'log'` - Same as `'information'`
+ `'disabled'` - Doesn't display any information at all.
+
+
g:ale_lsp_root *g:ale_lsp_root*
b:ale_lsp_root *b:ale_lsp_root*
@@ -1306,6 +1426,27 @@ g:ale_pattern_options_enabled *g:ale_pattern_options_enabled*
will not set buffer variables per |g:ale_pattern_options|.
+g:ale_rename_tsserver_find_in_comments *g:ale_rename_tsserver_find_in_comments*
+
+ Type: |Number|
+ Default: `0`
+
+ If enabled, this option will tell tsserver to find and replace text in
+ comments when calling |ALERename|. It can be enabled by settings the value
+ to `1`.
+
+
+g:ale_rename_tsserver_find_in_strings *g:ale_rename_tsserver_find_in_strings*
+
+
+ Type: |Number|
+ Default: `0`
+
+ If enabled, this option will tell tsserver to find and replace text in
+ strings when calling |ALERename|. It can be enabled by settings the value to
+ `1`.
+
+
g:ale_set_balloons *g:ale_set_balloons*
*b:ale_set_balloons*
@@ -1426,8 +1567,8 @@ g:ale_set_signs *g:ale_set_signs*
|ALEWarningLine| - All items with `'type': 'W'`
|ALEInfoLine| - All items with `'type': 'I'`
- With Neovim 0.3.2 or higher, ALE uses `numhl` option to highlight 'number'
- column. It uses the following highlight groups.
+ With Neovim 0.3.2 or higher, ALE can use the `numhl` option to highlight the
+ 'number' column. It uses the following highlight groups.
|ALEErrorSignLineNr| - Items with `'type': 'E'`
|ALEWarningSignLineNr| - Items with `'type': 'W'`
@@ -1435,6 +1576,9 @@ g:ale_set_signs *g:ale_set_signs*
|ALEStyleErrorSignLineNr| - Items with `'type': 'E'` and `'sub_type': 'style'`
|ALEStyleWarningSignLineNr| - Items with `'type': 'W'` and `'sub_type': 'style'`
+ To enable line number highlighting |g:ale_sign_highlight_linenrs| must be
+ set to `1` before ALE is loaded.
+
The markers for the highlights can be customized with the following options:
|g:ale_sign_error|
@@ -1449,6 +1593,16 @@ g:ale_set_signs *g:ale_set_signs*
To limit the number of signs ALE will set, see |g:ale_max_signs|.
+g:ale_sign_priority *g:ale_sign_priority*
+
+ Type: |Number|
+ Default: `30`
+
+ From Neovim 0.4.0 and Vim 8.1, ALE can set sign priority to all signs. The
+ larger this value is, the higher priority ALE signs have over other plugin
+ signs. See |sign-priority| for further details on how priority works.
+
+
g:ale_shell *g:ale_shell*
Type: |String|
@@ -1541,6 +1695,16 @@ g:ale_sign_warning *g:ale_sign_warning*
The sign for warnings in the sign gutter.
+g:ale_sign_highlight_linenrs *g:ale_sign_highlight_linenrs*
+
+ Type: |Number|
+ Default: `0`
+
+ When set to `1`, this option enables highlighting problems on the 'number'
+ column in Vim versions that support `numhl` highlights. This option must be
+ configured before ALE is loaded.
+
+
g:ale_update_tagstack *g:ale_update_tagstack*
*b:ale_update_tagstack*
Type: |Number|
@@ -1595,6 +1759,8 @@ g:ale_virtualtext_cursor *g:ale_virtualtext_cursor*
Type: |Number|
Default: `0`
+ This option only has any effect in NeoVim.
+
When this option is set to `1`, a message will be shown when a cursor is
near a warning or error. ALE will attempt to find the warning or error at a
column nearest to the cursor when the cursor is resting on a line which
@@ -1943,6 +2109,14 @@ g:ale_languagetool_executable *g:ale_languagetool_executable*
The executable to run for languagetool.
+g:ale_languagetool_options *g:ale_languagetool_options*
+ *b:ale_languagetool_options*
+ Type: |String|
+ Default: `'--autoDetect'`
+
+ This variable can be set to pass additional options to languagetool.
+
+
-------------------------------------------------------------------------------
7.3. Options for write-good *ale-write-good-options*
@@ -1981,6 +2155,7 @@ documented in additional help files.
ada.....................................|ale-ada-options|
gcc...................................|ale-ada-gcc|
+ gnatpp................................|ale-ada-gnatpp|
ansible.................................|ale-ansible-options|
ansible-lint..........................|ale-ansible-ansible-lint|
asciidoc................................|ale-asciidoc-options|
@@ -2041,6 +2216,7 @@ documented in additional help files.
nvcc..................................|ale-cuda-nvcc|
clang-format..........................|ale-cuda-clangformat|
d.......................................|ale-d-options|
+ dfmt..................................|ale-d-dfmt|
dls...................................|ale-d-dls|
uncrustify............................|ale-d-uncrustify|
dart....................................|ale-dart-options|
@@ -2107,6 +2283,7 @@ documented in additional help files.
cabal-ghc.............................|ale-haskell-cabal-ghc|
hdevtools.............................|ale-haskell-hdevtools|
hfmt..................................|ale-haskell-hfmt|
+ hindent...............................|ale-haskell-hindent|
hlint.................................|ale-haskell-hlint|
stack-build...........................|ale-haskell-stack-build|
stack-ghc.............................|ale-haskell-stack-ghc|
@@ -2123,6 +2300,8 @@ documented in additional help files.
write-good............................|ale-html-write-good|
idris...................................|ale-idris-options|
idris.................................|ale-idris-idris|
+ ink.....................................|ale-ink-options|
+ ink-language-server...................|ale-ink-language-server|
ispc....................................|ale-ispc-options|
ispc..................................|ale-ispc-ispc|
java....................................|ale-java-options|
@@ -2178,6 +2357,11 @@ documented in additional help files.
mmc...................................|ale-mercury-mmc|
nasm....................................|ale-nasm-options|
nasm..................................|ale-nasm-nasm|
+ nim.....................................|ale-nim-options|
+ nimcheck..............................|ale-nim-nimcheck|
+ nimlsp................................|ale-nim-nimlsp|
+ nix.....................................|ale-nix-options|
+ nixpkgs-fmt...........................|ale-nix-nixpkgs-fmt|
nroff...................................|ale-nroff-options|
write-good............................|ale-nroff-write-good|
objc....................................|ale-objc-options|
@@ -2268,6 +2452,7 @@ documented in additional help files.
write-good............................|ale-restructuredtext-write-good|
ruby....................................|ale-ruby-options|
brakeman..............................|ale-ruby-brakeman|
+ debride...............................|ale-ruby-debride|
rails_best_practices..................|ale-ruby-rails_best_practices|
reek..................................|ale-ruby-reek|
rubocop...............................|ale-ruby-rubocop|
@@ -2285,6 +2470,7 @@ documented in additional help files.
sasslint..............................|ale-sass-sasslint|
stylelint.............................|ale-sass-stylelint|
scala...................................|ale-scala-options|
+ metals................................|ale-scala-metals|
sbtserver.............................|ale-scala-sbtserver|
scalafmt..............................|ale-scala-scalafmt|
scalastyle............................|ale-scala-scalastyle|
@@ -2300,6 +2486,7 @@ documented in additional help files.
sml.....................................|ale-sml-options|
smlnj.................................|ale-sml-smlnj|
solidity................................|ale-solidity-options|
+ solc..................................|ale-solidity-solc|
solhint...............................|ale-solidity-solhint|
solium................................|ale-solidity-solium|
spec....................................|ale-spec-options|
@@ -2307,6 +2494,7 @@ documented in additional help files.
sql.....................................|ale-sql-options|
pgformatter...........................|ale-sql-pgformatter|
sqlfmt................................|ale-sql-sqlfmt|
+ sqlformat.............................|ale-sql-sqlformat|
stylus..................................|ale-stylus-options|
stylelint.............................|ale-stylus-stylelint|
sugarss.................................|ale-sugarss-options|
@@ -2508,6 +2696,18 @@ ALEHover *ALEHover*
A plug mapping `<Plug>(ale_hover)` is defined for this command.
+ALEOrganizeImports *ALEOrganizeImports*
+
+ Organize imports using tsserver. Currently not implemented for LSPs.
+
+
+ALERename *ALERename*
+
+ Rename a symbol using TypeScript server or Language Server.
+
+ The user will be prompted for a new name.
+
+
ALESymbolSearch `<query>` *ALESymbolSearch*
Search for symbols in the workspace, taken from any available LSP linters.