diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ale-cs.txt | 79 | ||||
-rw-r--r-- | doc/ale-elixir.txt | 15 | ||||
-rw-r--r-- | doc/ale-fish.txt | 14 | ||||
-rw-r--r-- | doc/ale-fountain.txt | 6 | ||||
-rw-r--r-- | doc/ale-gitcommit.txt | 42 | ||||
-rw-r--r-- | doc/ale-glsl.txt | 20 | ||||
-rw-r--r-- | doc/ale-graphql.txt | 8 | ||||
-rw-r--r-- | doc/ale-haskell.txt | 20 | ||||
-rw-r--r-- | doc/ale-html.txt | 15 | ||||
-rw-r--r-- | doc/ale-java.txt | 20 | ||||
-rw-r--r-- | doc/ale-javascript.txt | 41 | ||||
-rw-r--r-- | doc/ale-json.txt | 66 | ||||
-rw-r--r-- | doc/ale-lua.txt | 9 | ||||
-rw-r--r-- | doc/ale-markdown.txt | 6 | ||||
-rw-r--r-- | doc/ale-perl.txt | 5 | ||||
-rw-r--r-- | doc/ale-proto.txt | 9 | ||||
-rw-r--r-- | doc/ale-python.txt | 62 | ||||
-rw-r--r-- | doc/ale-ruby.txt | 17 | ||||
-rw-r--r-- | doc/ale-rust.txt | 56 | ||||
-rw-r--r-- | doc/ale-solidity.txt | 8 | ||||
-rw-r--r-- | doc/ale-typescript.txt | 2 | ||||
-rw-r--r-- | doc/ale.txt | 258 |
22 files changed, 663 insertions, 115 deletions
diff --git a/doc/ale-cs.txt b/doc/ale-cs.txt index eeb1abd1..237e8484 100644 --- a/doc/ale-cs.txt +++ b/doc/ale-cs.txt @@ -5,9 +5,9 @@ ALE C# Integration *ale-cs-options* =============================================================================== mcs *ale-cs-mcs* - The mcs linter checks the syntax of the '*.cs' file loaded in the current - buffer only. It uses the --parse option of the mcs compiler and implicitly - sets the -unsafe flag. + The `mcs` linter looks only for syntax errors while you type. See |ale-cs-mcsc| + for the separately configured linter for checking for semantic errors. + g:ale_cs_mcs_options *g:ale_cs_mcs_options* *b:ale_cs_mcs_options* @@ -17,7 +17,7 @@ g:ale_cs_mcs_options *g:ale_cs_mcs_options* This variable can be changed to pass additional flags given to mcs. - NOTE: The -unsafe flag is selected implicitly and thus does not need to be + NOTE: The -unsafe flag is selected implicitly and thus does not need to be explicitly included in the |g:ale_cs_mcs_options| or |b:ale_cs_mcs_options| parameter. @@ -25,49 +25,37 @@ g:ale_cs_mcs_options *g:ale_cs_mcs_options* =============================================================================== mcsc *ale-cs-mcsc* + The mcsc linter checks for semantic errors when files are opened or saved + See |ale-lint-file-linters| for more information on linters which do not + check for problems while you type. + The mcsc linter uses the mono mcs compiler to generate a temporary module target file (-t:module). The module includes including all '*.cs' files - contained in the directory tree rooted at the path defined by the + contained in the directory tree rooted at the path defined by the |g:ale_cs_mcsc_source| or |b:ale_cs_mcsc_source| variable. - variable and all sub directories. - - The paths to search for additional assembly ('*.dll') files can be - specified using the |g:ale_cs_mcsc_assembly_path| or - |b:ale_cs_mcsc_assembly_path| variable. The additional assembly files ('*.dll') - can be included through the |g:ale_cs_mcsc_assemblies| or - |b:ale_cs_mcsc_assemblies| parameter. - - NOTE: mcs compiles sources in multiple phases. It stops compilation after - finding errors during the current phase. - For example assume a file named 'FileWithTypeError.cs' is edited and saved - which contains a Type error. In the same directory tree a file named - 'FileWithSyntaxError.cs' exists which contains a syntax error - (eg.: a missing '{'). - In that case mcs and thus mcsc linter will stop after the syntax check phase is - finished and report the syntax error in the file 'FileWithSyntaxError.cs'. The - Type error in the file 'FileWithTypeError.cs is not seen jet. - The only possibility to find the error in in 'FileWithTypeError.cs' is to fix - the syntax error in 'FileWithSyntaxError.cs' first. After saving mcs will - successfully pass the syntax check phase and advance to the next compilation - phase at which the Type error hidden in 'FileWithTypeError.cs' is found and - now can be indicated by ale. + variable and all sub directories. + + The paths to search for additional assembly files can be specified using the + |g:ale_cs_mcsc_assembly_path| or |b:ale_cs_mcsc_assembly_path| variables. + + NOTE: ALE will not any errors in files apart from syntax errors if any one + of the source files contains a syntax error. Syntax errors must be fixed + first before other errors will be shown. + g:ale_cs_mcsc_options *g:ale_cs_mcsc_options* *b:ale_cs_mcsc_options* Type: |String| Default: `''` - This parameter can be used to define additional flags and parameters independent - of the source tree to be linted. The specified string is directly passed to - mcs compiler without any further change. + This option can be set to pass additional arguments to the `mcs` compiler. - For example, to add the dotnet package which is not added per default + For example, to add the dotnet package which is not added per default: > let g:ale_cs_mcs_options = '-pkg:dotnet' +< + NOTE: the `-unsafe` option is always passed to `mcs`. - NOTE: The mcs -unsafe option is included implicitly per default. Therefore it - is not necessary to specify it explicitly through the |g:ale_cs_mcsc_options| - or |b:ale_cs_mcsc_options| parameter. g:ale_cs_mcsc_source *g:ale_cs_mcsc_source* *b:ale_cs_mcsc_source* @@ -75,28 +63,39 @@ g:ale_cs_mcsc_source *g:ale_cs_mcsc_source* Default: `''` This variable defines the root path of the directory tree searched for the - '*.cs' files to be linted. If empty the current working directory is used. + '*.cs' files to be linted. If this option is empty, the source file's + directory will be used. NOTE: Currently it is not possible to specify sub directories and directory sub trees which shall not be searched for *.cs files. + g:ale_cs_mcsc_assembly_path *g:ale_cs_mcsc_assembly_path* *b:ale_cs_mcsc_assembly_path* Type: |List| Default: `[]` This variable defines a list of path strings to be searched for external - assembly ('*.dll') files. The list is passed to the mcs compiler using the - '-lib:' flag. + assembly files. The list is passed to the mcs compiler using the `-lib:` + flag. + g:ale_cs_mcsc_assemblies *g:ale_cs_mcsc_assemblies* *b:ale_cs_mcsc_assemblies* Type: |List| Default: `[]` - This variable defines a list of external assembly (*.dll) files required - by the mono mcs compiler to generate a valid module target. The list is - passed the mcs compiler using the '-r:' flag. + This variable defines a list of external assembly (*.dll) files required + by the mono mcs compiler to generate a valid module target. The list is + passed the mcs compiler using the `-r:` flag. + + For example: > + + " Compile C# programs with the Unity engine DLL file on Mac. + let g:ale_cs_mcsc_assemblies = [ + \ '/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll', + \] +< =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-elixir.txt b/doc/ale-elixir.txt index a5318c0f..b7d4922e 100644 --- a/doc/ale-elixir.txt +++ b/doc/ale-elixir.txt @@ -14,4 +14,19 @@ g:ale_elixir_mix_options *g:ale_elixir_mix_options* This variable can be changed to specify the mix executable. =============================================================================== +dialyxir *ale-elixir-dialyxir* + +Dialyzer, a DIscrepancy AnaLYZer for ERlang programs. +http://erlang.org/doc/man/dialyzer.html + +It can be used with elixir through dialyxir +https://github.com/jeremyjh/dialyxir + +Options for dialyzer are not configurable by ale, but they are instead +configured on your project's `mix.exs`. + +See https://github.com/jeremyjh/dialyxir#with-explaining-stuff for more +information. + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-fish.txt b/doc/ale-fish.txt new file mode 100644 index 00000000..8450b38a --- /dev/null +++ b/doc/ale-fish.txt @@ -0,0 +1,14 @@ +=============================================================================== +ALE Fish Integration *ale-fish-options* + +Lints fish files using `fish -n`. + +Note that `fish -n` is not foolproof: it sometimes gives false positives or +errors that are difficult to parse without more context. This integration skips +displaying errors if an error message is not found. + +If ALE is not showing any errors but your file does not run as expected, run +`fish -n <file.fish>` from the command line. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-fountain.txt b/doc/ale-fountain.txt new file mode 100644 index 00000000..ac0870cf --- /dev/null +++ b/doc/ale-fountain.txt @@ -0,0 +1,6 @@ +=============================================================================== +ALE Fountain Integration *ale-fountain-options* + + +=============================================================================== +vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-gitcommit.txt b/doc/ale-gitcommit.txt new file mode 100644 index 00000000..71813dd0 --- /dev/null +++ b/doc/ale-gitcommit.txt @@ -0,0 +1,42 @@ +=============================================================================== +ALE Git Commit Integration *ale-gitcommit-options* + + +=============================================================================== +gitlint *ale-gitcommit-gitlint* + +g:ale_gitcommit_gitlint_executable *g:ale_gitcommit_gitlint_executable* + *b:ale_gitcommit_gitlint_executable* + Type: |String| + Default: `'gitlint'` + + This variable can be changed to modify the executable used for gitlint. + + +g:ale_gitcommit_gitlint_options *g:ale_gitcommit_gitlint_options* + *b:ale_gitcommit_gitlint_options* + Type: |String| + Default: `''` + + This variable can be changed to add command-line arguments to the gitlint + invocation. + + For example, to dinamically set the gitlint configuration file path, you + may want to set > + + let g:ale_gitcommit_gitlint_options = '-C /home/user/.config/gitlint.ini' +< + +g:ale_gitcommit_gitlint_use_global *g:ale_gitcommit_gitlint_use_global* + *b:ale_gitcommit_gitlint_use_global* + Type: |Number| + Default: `0` + + This variable controls whether or not ALE will search for gitlint in a + virtualenv directory first. If this variable is set to `1`, then ALE will + always use |g:ale_gitcommit_gitlint_executable| for the executable path. + + Both variables can be set with `b:` buffer variables instead. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-glsl.txt b/doc/ale-glsl.txt index fbadf03c..257de751 100644 --- a/doc/ale-glsl.txt +++ b/doc/ale-glsl.txt @@ -33,4 +33,24 @@ g:ale_glsl_glslang_options *g:ale_glsl_glslang_options* =============================================================================== +glslls *ale-glsl-glslls* + +g:ale_glsl_glslls_executable *g:ale_glsl_glslls_executable* + *b:ale_glsl_glslls_executable* + Type: |String| + Default: `'glslls'` + + This variable can be changed to change the path to glslls. + See |ale-integrations-local-executables| + +g:ale_glsl_glslls_logfile *g:ale_glsl_glslls_logfile* + *b:ale_glsl_glslls_logfile* + Type: |String| + Default: `''` + + Setting this variable to a writeable file path will enable logging to that + file. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-graphql.txt b/doc/ale-graphql.txt index 5ceb5ca7..de412762 100644 --- a/doc/ale-graphql.txt +++ b/doc/ale-graphql.txt @@ -3,6 +3,14 @@ ALE GraphQL Integration *ale-graphql-options* =============================================================================== +eslint *ale-graphql-eslint* + +The `eslint` linter for GraphQL uses the JavaScript options for `eslint`; see: +|ale-javascript-eslint|. + +You will need the GraphQL ESLint plugin installed for this to work. + +=============================================================================== gqlint *ale-graphql-gqlint* =============================================================================== diff --git a/doc/ale-haskell.txt b/doc/ale-haskell.txt index 4a490efc..9fab39bf 100644 --- a/doc/ale-haskell.txt +++ b/doc/ale-haskell.txt @@ -3,6 +3,26 @@ ALE Haskell Integration *ale-haskell-options* =============================================================================== +brittany *ale-haskell-brittany* + +g:ale_haskell_brittany_executable *g:ale_haskell_brittany_executable* + *b:ale_haskell_brittany_executable* + Type: |String| + Default: `'brittany'` + + This variable can be changed to use a different executable for brittany. + +=============================================================================== +ghc *ale-haskell-ghc* + +g:ale_haskell_ghc_options *g:ale_haskell_ghc_options* + *b:ale_haskell_ghc_options* + Type: |String| + Default: `'-fno-code -v0'` + + This variable can be changed to modify flags given to ghc. + +=============================================================================== hdevtools *ale-haskell-hdevtools* g:ale_haskell_hdevtools_executable *g:ale_haskell_hdevtools_executable* diff --git a/doc/ale-html.txt b/doc/ale-html.txt index 14e705e0..c5d5afa5 100644 --- a/doc/ale-html.txt +++ b/doc/ale-html.txt @@ -32,6 +32,21 @@ g:ale_html_htmlhint_use_global *g:ale_html_htmlhint_use_global* =============================================================================== tidy *ale-html-tidy* +`tidy` is a console application which corrects and cleans up HTML and XML +documents by fixing markup errors and upgrading legacy code to modern +standards. + +Note: +`/usr/bin/tidy` on macOS (installed by default) is too old. It was released +on 31 Oct 2006. It does not consider modern HTML specs (HTML5) and shows +outdated warnings. So |ale| ignores `/usr/bin/tidy` on macOS. + +To use `tidy` on macOS, please install the latest version with Homebrew: +> + $ brew install tidy-html5 +< +`/usr/local/bin/tidy` is installed. + g:ale_html_tidy_executable *g:ale_html_tidy_executable* *b:ale_html_tidy_executable* Type: |String| diff --git a/doc/ale-java.txt b/doc/ale-java.txt index 13decb41..0d2011f8 100644 --- a/doc/ale-java.txt +++ b/doc/ale-java.txt @@ -34,4 +34,24 @@ g:ale_java_javac_options *g:ale_java_javac_options* =============================================================================== +google-java-format *ale-java-google-java-format* + + +g:ale_java_google_java_format_executable + *g:ale_java_google_java_format_executable* + *b:ale_java_google_java_format_executable* + Type: |String| + Default: `'google-java-format'` + + See |ale-integrations-local-executables| + + +g:ale_java_google_java_format_options *g:ale_java_google_java_format_options* + *b:ale_java_google_java_format_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-javascript.txt b/doc/ale-javascript.txt index 1b8e3f5d..f625fd7f 100644 --- a/doc/ale-javascript.txt +++ b/doc/ale-javascript.txt @@ -84,6 +84,17 @@ g:ale_javascript_flow_executable *g:ale_javascript_flow_executable* See |ale-integrations-local-executables| +g:ale_javascript_flow_use_home_config *g:ale_javascript_flow_use_home_config* + *b:ale_javascript_flow_use_home_config* + Type: |Number| + Default: `0` + + When set to `1`, ALE will allow Flow to be executed with configuration files + from your home directory. ALE will not run Flow with home directory + configuration files by default, as doing so can lead to Vim consuming all of + your RAM and CPU power. + + g:ale_javascript_flow_use_global *g:ale_javascript_flow_use_global* *b:ale_javascript_flow_use_global* Type: |Number| @@ -93,6 +104,15 @@ g:ale_javascript_flow_use_global *g:ale_javascript_flow_use_global* =============================================================================== +importjs *ale-javascript-importjs* + +g:ale_javascript_importjs_executable *g:ale_javascript_importjs_executable* + *b:ale_javascript_importjs_executable* + Type: |String| + Default: `'importjs'` + + +=============================================================================== jscs *ale-javascript-jscs* g:ale_javascript_jscs_executable *g:ale_javascript_jscs_executable* @@ -156,23 +176,10 @@ g:ale_javascript_prettier_use_global *g:ale_javascript_prettier_use_global* See |ale-integrations-local-executables| -g:ale_javascript_prettier_use_local_config - *g:ale_javascript_prettier_use_local_config* - *b:ale_javascript_prettier_use_local_config* - Type: |Number| - Default: `0` - - This variable can be set to use the local prettier configuration file. - =============================================================================== prettier-eslint *ale-javascript-prettier-eslint* -ALE supports `prettier-eslint` >= 4.2.0. Using lower version is not recommended -because it cannot be configured to use the ESLint configuration file for input -given via stdin. However ALE could be set up on your own risk with older -versions with |g:ale_javascript_prettier_eslint_legacy| - g:ale_javascript_prettier_eslint_executable *g:ale_javascript_prettier_eslint_executable* *b:ale_javascript_prettier_eslint_executable* @@ -199,14 +206,6 @@ g:ale_javascript_prettier_eslint_use_global See |ale-integrations-local-executables| -g:ale_javascript_prettier_eslint_legacy - *g:ale_javascript_prettier_eslint_legacy* - *b:ale_javascript_prettier_eslint_legacy* - Type: |Number| - Default: `0` - - Fallback option for `prettier-eslint` < 4.2.0 - =============================================================================== prettier-standard *ale-javascript-prettier-standard* diff --git a/doc/ale-json.txt b/doc/ale-json.txt index 1d052d55..b8e13cdb 100644 --- a/doc/ale-json.txt +++ b/doc/ale-json.txt @@ -3,12 +3,78 @@ ALE JSON Integration *ale-json-options* =============================================================================== +fixjson *ale-json-fixjson* + +fixjson is a JSON file fixer/formatter for humans using (relaxed) JSON5. +It provides: + +- Pretty-prints JSON input +- Fixes various failures while humans writing JSON + - Fixes trailing commas objects or arrays + - Fixes missing commas for elements of objects or arrays + - Adds quotes to keys in objects + - Newlines in strings + - Hex numbers + - Fixes single quotes to double quotes + +You can install it using npm: +> + $ npm install -g fixjson +< +ALE provides fixjson integration as a fixer. See |ale-fix|. + +g:ale_json_fixjson_executable *g:ale_json_fixjson_executable* + *b:ale_json_fixjson_executable* + + Type: |String| + Default: `'fixjson'` + + The executable that will be run for fixjson. + +g:ale_json_fixjson_options *g:ale_json_fixjson_options* + *b:ale_json_fixjson_options* + + Type: |String| + Default: `''` + + This variable can add extra options to the command executed for running + fixjson. + + +=============================================================================== jsonlint *ale-json-jsonlint* There are no options available. =============================================================================== +jq *ale-json-jq* + +g:ale_json_jq_executable *g:ale_json_jq_executable* + *b:ale_json_jq_executable* + Type: |String| + Default: `'jq'` + + See |ale-integrations-local-executables| + + +g:ale_json_jq_use_global *g:ale_json_jq_use_global* + *b:ale_json_jq_use_global* + Type: |Number| + Default: `0` + + See |ale-integrations-local-executables| + + +g:ale_json_jq_options *g:ale_json_jq_options* + *b:ale_json_jq_options* + Type: |String| + Default: `''` + + This option can be changed to pass extra options to `jq`. + + +=============================================================================== prettier *ale-json-prettier* See |ale-javascript-prettier| for information about the available options. diff --git a/doc/ale-lua.txt b/doc/ale-lua.txt index 74d6b94a..f1286f89 100644 --- a/doc/ale-lua.txt +++ b/doc/ale-lua.txt @@ -1,6 +1,15 @@ =============================================================================== ALE Lua Integration *ale-lua-options* +=============================================================================== +luac *ale-lua-luac* + +g:ale_lua_luac_executable *g:ale_lua_luac_executable* + *b:ale_lua_luac_executable* + Type: |String| + Default: `'luac'` + + This variable can be changed to change the path to luac. =============================================================================== luacheck *ale-lua-luacheck* diff --git a/doc/ale-markdown.txt b/doc/ale-markdown.txt index 3ce9619c..b59f0183 100644 --- a/doc/ale-markdown.txt +++ b/doc/ale-markdown.txt @@ -3,6 +3,12 @@ ALE Markdown Integration *ale-markdown-options* =============================================================================== +prettier *ale-markdown-prettier* + +See |ale-javascript-prettier| for information about the available options. + + +=============================================================================== write-good *ale-markdown-write-good* See |ale-write-good-options| diff --git a/doc/ale-perl.txt b/doc/ale-perl.txt index 7611d30f..414856bd 100644 --- a/doc/ale-perl.txt +++ b/doc/ale-perl.txt @@ -1,6 +1,11 @@ =============================================================================== ALE Perl Integration *ale-perl-options* +ALE offers a few ways to check Perl code. Checking code with `perl` is +disabled by default, as `perl` code cannot be checked without executing it. + +See |g:ale_linters|. + =============================================================================== perl *ale-perl-perl* diff --git a/doc/ale-proto.txt b/doc/ale-proto.txt index 6a256380..734e23d5 100644 --- a/doc/ale-proto.txt +++ b/doc/ale-proto.txt @@ -20,5 +20,14 @@ protoc-gen-lint *ale-proto-protoc-gen-lint* The linter is a plugin for the `protoc` binary. As long as the binary resides in the system path, `protoc` will find it. +g:ale_proto_protoc_gen_lint_options *g:ale_proto_protoc_gen_lint_options* + + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to protoc. Note that the + directory of the linted file is always passed as an include path with '-I' + before any user-supplied options. + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-python.txt b/doc/ale-python.txt index e34b548f..4d55e751 100644 --- a/doc/ale-python.txt +++ b/doc/ale-python.txt @@ -104,6 +104,16 @@ g:ale_python_mypy_executable *g:ale_python_mypy_executable* See |ale-integrations-local-executables| +g:ale_python_mypy_ignore_invalid_syntax + *g:ale_python_mypy_ignore_invalid_syntax* + *b:ale_python_mypy_ignore_invalid_syntax* + Type: |Number| + Default: `0` + + When set to `1`, syntax error messages for mypy will be ignored. This option + can be used when running other Python linters which check for syntax errors, + as mypy can take a while to finish executing. + g:ale_python_mypy_options *g:ale_python_mypy_options* *b:ale_python_mypy_options* @@ -123,6 +133,46 @@ g:ale_python_mypy_use_global *g:ale_python_mypy_use_global* =============================================================================== +prospector *ale-python-prospector* + +g:ale_python_prospector_executable *g:ale_python_prospector_executable* + *b:ale_python_prospector_executable* + Type: |String| + Default: `'prospector'` + + See |ale-integrations-local-executables| + + +g:ale_python_prospector_options *g:ale_python_prospector_options* + *b:ale_python_prospector_options* + Type: |String| + Default: `''` + + This variable can be changed to add command-line arguments to the prospector + invocation. + + For example, to dynamically switch between programs targeting Python 2 and + Python 3, you may want to set > + + let g:ale_python_prospector_executable = 'python3' + " or 'python' for Python 2 + let g:ale_python_prospector_options = '--rcfile /path/to/.prospector.yaml' + " The virtualenv detection needs to be disabled. + let g:ale_python_prospector_use_global = 0 + + after making sure it's installed for the appropriate Python versions (e.g. + `python3 -m pip install --user prospector`). + + +g:ale_python_prospector_use_global *g:ale_python_prospector_use_global* + *b:ale_python_prospector_use_global* + Type: |Number| + Default: `0` + + See |ale-integrations-local-executables| + + +=============================================================================== pycodestyle *ale-python-pycodestyle* @@ -189,16 +239,26 @@ g:ale_python_pylint_use_global *g:ale_python_pylint_use_global* See |ale-integrations-local-executables| + =============================================================================== pyls *ale-python-pyls* g:ale_python_pyls_executable *g:ale_python_pyls_executable* *b:ale_python_pyls_executable* Type: |String| - Default: `pyls` + Default: `'pyls'` See |ale-integrations-local-executables| + +g:ale_python_pyls_use_global *g:ale_python_pyls_use_global* + *b:ale_python_pyls_use_global* + Type: |Number| + Default: `0` + + See |ale-integrations-local-executables| + + =============================================================================== yapf *ale-python-yapf* diff --git a/doc/ale-ruby.txt b/doc/ale-ruby.txt index c710a26e..94181ed4 100644 --- a/doc/ale-ruby.txt +++ b/doc/ale-ruby.txt @@ -58,10 +58,10 @@ g:ale_ruby_reek_show_wiki_link *g:ale_ruby_reek_show_wiki_link* =============================================================================== rubocop *ale-ruby-rubocop* -g:ale_ruby_rubocop_executable g:ale_ruby_rubocop_executable - b:ale_ruby_rubocop_executable +g:ale_ruby_rubocop_executable *g:ale_ruby_rubocop_executable* + *b:ale_ruby_rubocop_executable* Type: String - Default: 'rubocop' + Default: `'rubocop'` Override the invoked rubocop binary. This is useful for running rubocop from binstubs or a bundle. @@ -76,4 +76,15 @@ g:ale_ruby_rubocop_options *g:ale_ruby_rubocop_options* =============================================================================== +ruby *ale-ruby-ruby* + +g:ale_ruby_ruby_executable *g:ale_ruby_ruby_executable* + *b:ale_ruby_ruby_executable* + Type: String + Default: `'ruby'` + + This variable can be changed to use a different executable for ruby. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-rust.txt b/doc/ale-rust.txt index 15ffef01..dad9ae66 100644 --- a/doc/ale-rust.txt +++ b/doc/ale-rust.txt @@ -53,12 +53,42 @@ g:ale_rust_cargo_use_check *g:ale_rust_cargo_use_check* g:ale_rust_cargo_check_all_targets *g:ale_rust_cargo_check_all_targets* *b:ale_rust_cargo_check_all_targets* Type: |Number| - Default: `1` + Default: `0` When set to `1`, ALE will set the `--all-targets` option when `cargo check` is used. See |g:ale_rust_cargo_use_check|, +g:ale_rust_cargo_default_feature_behavior + *g:ale_rust_cargo_default_feature_behavior* + *b:ale_rust_cargo_default_feature_behavior* + Type: |String| + Default: `default` + + When set to `none`, ALE will set the `--no-default-features` option when + invoking `cargo`. Only the features specified in + |g:ale_rust_cargo_include_features| will be included when performing the + lint check. + + When set to `default`, ALE will instruct `cargo` to build all default + features specified in the project's `Cargo.toml` file, in addition to + including any additional features defined in + |g:ale_rust_cargo_include_features|. + + When set to `all`, ALE will set the `--all-features` option when + invoking `cargo`, which will include all features defined in the project's + `Cargo.toml` file when performing the lint check. + + +g:ale_rust_cargo_include_features *g:ale_rust_cargo_include_features* + *b:ale_rust_cargo_include_features* + Type: |String| + Default: `''` + + When defined, ALE will set the `--features` option when invoking `cargo` to + perform the lint check. See |g:ale_rust_cargo_default_feature_behavior|. + + =============================================================================== rls *ale-rust-rls* @@ -70,9 +100,33 @@ g:ale_rust_rls_executable *g:ale_rust_rls_executable* This variable can be modified to change the executable path for `rls`. +g:ale_rust_rls_toolchain *g:ale_rust_rls_toolchain* + *b:ale_rust_rls_toolchain* + Type: |String| + Default: `'nightly'` + + This option can be set to change the toolchain used for `rls`. Possible + values include `'nightly'`, `'beta'`, and `'stable'`. + + The `rls` server will only be started once per executable. + + =============================================================================== rustc *ale-rust-rustc* + +g:ale_rust_rustc_options *g:ale_rust_rustc_options* + *b:ale_rust_rustc_options* + Type: |String| + Default: `'-Z no-trans'` + + The variable can be used to change the options passed to `rustc`. + + `-Z no-trans` should only work with nightly builds of Rust. Be careful when + setting the options, as running `rustc` could execute code or generate + binary files. + + g:ale_rust_ignore_error_codes *g:ale_rust_ignore_error_codes* *b:ale_rust_ignore_error_codes* Type: |List| of |String|s diff --git a/doc/ale-solidity.txt b/doc/ale-solidity.txt index 3dea123e..4b74a27a 100644 --- a/doc/ale-solidity.txt +++ b/doc/ale-solidity.txt @@ -3,6 +3,14 @@ ALE Solidity Integration *ale-solidity-options* =============================================================================== +solhint *ale-solidity-solhint* + + Solhint should work out-of-the-box. You can further configure it using a + `.solihint.json` file. See https://github.com/protofire/solhint for more + information. + + +=============================================================================== solium *ale-solidity-solium* Use of Solium linter for Solidity source code requires a .soliumrc.json diff --git a/doc/ale-typescript.txt b/doc/ale-typescript.txt index d31ac71e..d83a2dfe 100644 --- a/doc/ale-typescript.txt +++ b/doc/ale-typescript.txt @@ -5,7 +5,7 @@ ALE TypeScript Integration *ale-typescript-options* =============================================================================== eslint *ale-typescript-eslint* -Becauase of how TypeScript compiles code to JavaScript and how interrelated +Because of how TypeScript compiles code to JavaScript and how interrelated the two languages are, the `eslint` linter for TypeScript uses the JavaScript options for `eslint` too. See: |ale-javascript-eslint|. diff --git a/doc/ale.txt b/doc/ale.txt index be577688..e0002f77 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -10,7 +10,9 @@ CONTENTS *ale-contents* 2. Supported Languages & Tools..........|ale-support| 3. Linting..............................|ale-lint| 4. Fixing Problems......................|ale-fix| - 5. Completion...........................|ale-completion| + 5. Language Server Protocol Support.....|ale-lsp| + 5.1 Completion........................|ale-completion| + 5.2 Go To Definition..................|ale-go-to-definition| 6. Global Options.......................|ale-options| 6.1 Highlights........................|ale-highlights| 6.2 Options for write-good Linter.....|ale-write-good-options| @@ -55,6 +57,7 @@ CONTENTS *ale-contents* hadolint............................|ale-dockerfile-hadolint| elixir................................|ale-elixir-options| mix.................................|ale-elixir-mix| + dialyxir............................|ale-elixir-dialyxir| elm...................................|ale-elm-options| elm-format..........................|ale-elm-elm-format| elm-make............................|ale-elm-elm-make| @@ -62,20 +65,28 @@ CONTENTS *ale-contents* erlc................................|ale-erlang-erlc| syntaxerl...........................|ale-erlang-syntaxerl| eruby.................................|ale-eruby-options| + fish..................................|ale-fish-options| fortran...............................|ale-fortran-options| gcc.................................|ale-fortran-gcc| + fountain..............................|ale-fountain-options| fusionscript..........................|ale-fuse-options| fusion-lint.........................|ale-fuse-fusionlint| + git commit............................|ale-gitcommit-options| + gitlint.............................|ale-gitcommit-gitlint| glsl..................................|ale-glsl-options| glslang.............................|ale-glsl-glslang| + glslls..............................|ale-glsl-glslls| go....................................|ale-go-options| gofmt...............................|ale-go-gofmt| gometalinter........................|ale-go-gometalinter| graphql...............................|ale-graphql-options| + eslint..............................|ale-graphql-eslint| gqlint..............................|ale-graphql-gqlint| handlebars............................|ale-handlebars-options| ember-template-lint.................|ale-handlebars-embertemplatelint| haskell...............................|ale-haskell-options| + brittany............................|ale-haskell-brittany| + ghc.................................|ale-haskell-ghc| hdevtools...........................|ale-haskell-hdevtools| hfmt................................|ale-haskell-hfmt| stack-build.........................|ale-haskell-stack-build| @@ -88,9 +99,11 @@ CONTENTS *ale-contents* java..................................|ale-java-options| checkstyle..........................|ale-java-checkstyle| javac...............................|ale-java-javac| + google-java-format..................|ale-java-google-java-format| javascript............................|ale-javascript-options| eslint..............................|ale-javascript-eslint| flow................................|ale-javascript-flow| + importjs............................|ale-javascript-importjs| jscs................................|ale-javascript-jscs| jshint..............................|ale-javascript-jshint| prettier............................|ale-javascript-prettier| @@ -99,7 +112,9 @@ CONTENTS *ale-contents* standard............................|ale-javascript-standard| xo..................................|ale-javascript-xo| json..................................|ale-json-options| + fixjson.............................|ale-json-fixjson| jsonlint............................|ale-json-jsonlint| + jq..................................|ale-json-jq| prettier............................|ale-json-prettier| kotlin................................|ale-kotlin-options| kotlinc.............................|ale-kotlin-kotlinc| @@ -113,8 +128,10 @@ CONTENTS *ale-contents* llvm..................................|ale-llvm-options| llc.................................|ale-llvm-llc| lua...................................|ale-lua-options| + luac................................|ale-lua-luac| luacheck............................|ale-lua-luacheck| markdown..............................|ale-markdown-options| + prettier............................|ale-markdown-prettier| write-good..........................|ale-markdown-write-good| nroff.................................|ale-nroff-options| write-good..........................|ale-nroff-write-good| @@ -150,6 +167,7 @@ CONTENTS *ale-contents* flake8..............................|ale-python-flake8| isort...............................|ale-python-isort| mypy................................|ale-python-mypy| + prospector..........................|ale-python-prospector| pycodestyle.........................|ale-python-pycodestyle| pylint..............................|ale-python-pylint| pyls................................|ale-python-pyls| @@ -167,6 +185,7 @@ CONTENTS *ale-contents* rails_best_practices................|ale-ruby-rails_best_practices| reek................................|ale-ruby-reek| rubocop.............................|ale-ruby-rubocop| + ruby................................|ale-ruby-ruby| rust..................................|ale-rust-options| cargo...............................|ale-rust-cargo| rls.................................|ale-rust-rls| @@ -186,6 +205,7 @@ CONTENTS *ale-contents* sml...................................|ale-sml-options| smlnj...............................|ale-sml-smlnj| solidity..............................|ale-solidity-options| + solhint.............................|ale-solidity-solhint| solium..............................|ale-solidity-solium| spec..................................|ale-spec-options| rpmlint.............................|ale-spec-rpmlint| @@ -265,12 +285,12 @@ Notes: * ASM: `gcc` * Ansible: `ansible-lint` * API Blueprint: `drafter` -* AsciiDoc: `proselint`, `write-good`, `redpen` +* AsciiDoc: `alex`!!, `proselint`, `redpen`, `write-good` * Awk: `gawk` * Bash: `shell` (-n flag), `shellcheck`, `shfmt` * Bourne Shell: `shell` (-n flag), `shellcheck`, `shfmt` * C: `cppcheck`, `cpplint`!!, `gcc`, `clang`, `clangtidy`!!, `clang-format` -* C++ (filetype cpp): `clang`, `clangcheck`!!, `clangtidy`!!, `cppcheck`, `cpplint`!!, `gcc`, `clang-format` +* C++ (filetype cpp): `clang`, `clangcheck`!!, `clangtidy`!!, `clang-format`, `cppcheck`, `cpplint`!!, `gcc` * CUDA: `nvcc`!! * C#: `mcs`, `mcsc`!! * Chef: `foodcritic` @@ -284,48 +304,51 @@ Notes: * Dafny: `dafny`!! * Dart: `dartanalyzer`!!, `language_server` * Dockerfile: `hadolint` -* Elixir: `credo`, `dogma`!! +* Elixir: `credo`, `dialyxir`, `dogma`!! * Elm: `elm-format, elm-make` * Erb: `erb`, `erubi`, `erubis` * Erlang: `erlc`, `SyntaxErl` +* Fish: `fish` (-n flag) * Fortran: `gcc` +* Fountain: `proselint` * FusionScript: `fusion-lint` -* GLSL: glslang -* Go: `gofmt`, `goimports`, `go vet`, `golint`, `gometalinter`!!, `go build`!!, `gosimple`!!, `staticcheck`!! -* GraphQL: `gqlint` +* Git Commit Messages: `gitlint` +* GLSL: glslang, `glslls` +* Go: `gofmt`, `goimports`, `go vet`, `golint`, `gotype`, `gometalinter`!!, `go build`!!, `gosimple`!!, `staticcheck`!! +* GraphQL: `eslint`, `gqlint` * Haml: `haml-lint` * Handlebars: `ember-template-lint` -* Haskell: `ghc`, `stack-ghc`, `stack-build`!!, `ghc-mod`, `stack-ghc-mod`, `hlint`, `hdevtools`, `hfmt` -* HTML: `HTMLHint`, `proselint`, `tidy`, `write-good` +* Haskell: `brittany`, `ghc`, `stack-ghc`, `stack-build`!!, `ghc-mod`, `stack-ghc-mod`, `hlint`, `hdevtools`, `hfmt` +* HTML: `alex`!!, `HTMLHint`, `proselint`, `tidy`, `write-good` * Idris: `idris` -* Java: `checkstyle`, `javac` -* JavaScript: `eslint`, `flow`, `jscs`, `jshint`, `prettier`, `prettier-eslint` >= 4.2.0, `prettier-standard`, `standard`, `xo` -* JSON: `jsonlint`, `prettier` +* Java: `checkstyle`, `javac`, `google-java-format` +* JavaScript: `eslint`, `flow`, `jscs`, `jshint`, `prettier`, `prettier-eslint`, `prettier-standard`, `standard`, `xo` +* JSON: `fixjson`, `jsonlint`, `jq`, `prettier` * Kotlin: `kotlinc`, `ktlint` -* LaTeX (tex): `chktex`, `lacheck`, `proselint`, `write-good`, `redpen` +* LaTeX (tex): `alex`!!, `chktex`, `lacheck`, `proselint`, `redpen`, `vale`, `write-good` * Less: `lessc`, `prettier`, `stylelint` * LLVM: `llc` -* Lua: `luacheck` -* Mail: `proselint`, `vale` +* Lua: `luac`, `luacheck` +* Mail: `alex`!!, `proselint`, `vale` * Make: `checkmake` -* Markdown: `mdl`, `proselint`, `vale`, `remark-lint`, `write-good`, `redpen` +* Markdown: `alex`!!, `mdl`, `prettier`, `proselint`, `redpen`, `remark-lint`, `vale`, `write-good` * MATLAB: `mlint` * Nim: `nim check`!! * nix: `nix-instantiate` -* nroff: `proselint`, `write-good` +* nroff: `alex`!!, `proselint`, `write-good` * Objective-C: `clang` * Objective-C++: `clang` * OCaml: `merlin` (see |ale-ocaml-merlin|), `ols` * Perl: `perl -c`, `perl-critic` * PHP: `hack`, `hackfmt`, `langserver`, `phan`, `php -l`, `phpcs`, `phpmd`, `phpstan`, `phpcbf` -* Pod: `proselint`, `write-good` +* Pod: `alex`!!, `proselint`, `write-good` * proto: `protoc-gen-lint` * Pug: `pug-lint` * Puppet: `puppet`, `puppet-lint` -* Python: `autopep8`, `flake8`, `isort`, `mypy`, `pycodestyle`, `pyls`, `pylint`!!, `yapf` +* Python: `autopep8`, `flake8`, `isort`, `mypy`, `prospector`, `pycodestyle`, `pyls`, `pylint`!!, `yapf` * R: `lintr` * ReasonML: `merlin`, `ols`, `refmt` -* reStructuredText: `proselint`, `rstcheck`, `write-good`, `redpen` +* reStructuredText: `alex`!!, `proselint`, `redpen`, `rstcheck`, `vale`, `write-good` * Re:VIEW: `redpen` * RPM spec: `rpmlint` * Ruby: `brakeman`, `rails_best_practices`!!, `reek`, `rubocop`, `ruby` @@ -335,20 +358,20 @@ Notes: * Scala: `scalac`, `scalastyle` * Slim: `slim-lint` * SML: `smlnj` -* Solidity: `solium` +* Solidity: `solhint, solium` * Stylus: `stylelint` * SQL: `sqlint` * Swift: `swiftlint`, `swiftformat` * Tcl: `nagelfar`!! * Terraform: `tflint` -* Texinfo: `proselint`, `write-good` -* Text^: `proselint`, `vale`, `write-good`, `redpen` +* Texinfo: `alex`!!, `proselint`, `write-good` +* Text^: `alex`!!, `proselint`, `vale`, `write-good`, `redpen` * Thrift: `thrift` * TypeScript: `eslint`, `prettier`, `tslint`, `tsserver`, `typecheck` * Verilog: `iverilog`, `verilator` * Vim: `vint` -* Vim help^: `proselint`, `write-good` -* XHTML: `proselint`, `write-good` +* Vim help^: `alex`!!, `proselint`, `write-good` +* XHTML: `alex`!!, `proselint`, `write-good` * XML: `xmllint` * YAML: `swaglint`, `yamllint` @@ -459,6 +482,15 @@ are supported for running the commands. for commands which need to modify some file on disk in order to fix files. + `process_with` An optional callback for post-processing. + + The callback must accept two arguments, + `(buffer, output)`, which can be used for converting + the output from a command into lines to replace the + buffer's contents with. + + A |List| of |String|s must be returned. + `chain_with` An optional key for defining a callback to call next. The callback must accept two or three arguments, @@ -479,6 +511,18 @@ are supported for running the commands. that are cached. An empty List will be passed to the next callback in the chain for the `output`. + `read_buffer` An optional key for disabling reading the buffer. + + When set to `0`, ALE will not pipe the buffer's data + into the command via stdin. This option is ignored and + the buffer is not read when `read_temporary_file` is + `1`. + + This option defaults to `0` when `chain_with` is defined + as anything other than `v:null`, and defaults to `1` + otherwise. This is so earlier commands in a chain + do not receive the buffer's data by default. + *ale-fix-configuration* Synchronous functions and asynchronous jobs will be run in a sequence for @@ -524,17 +568,30 @@ by default. =============================================================================== -5. Completion *ale-completion* +5. Language Server Protocol Support *ale-lsp* + +ALE offers some support for integrating with Language Server Protocol (LSP) +servers. LSP linters can be used in combination with any other linter, and +will automatically connect to LSP servers when needed. ALE also supports +`tsserver` for TypeScript, which uses a different but very similar protocol. + +ALE supports the following LSP/tsserver features. -ALE offers some limited support for automatic completion of code while you -type. Completion is only supported via Language Server Protocol servers which -ALE can connect to for linting, which can offer good built-in support for -suggesting completion information. ALE will only suggest symbols for -completion for LSP linters that are enabled. +1. Diagnostics/linting - Enabled via selecting linters as usual. +2. Completion (Only for tsserver) +3. Go to definition + + +------------------------------------------------------------------------------- +5.1 Completion *ale-completion* NOTE: At the moment, only `tsserver` for TypeScript code is supported for completion. +ALE offers limited support for automatic completion of code while you type. +Completion is only supported while a least one LSP linter is enabled. ALE +will only suggest symbols provided by the LSP servers. + Suggestions will be made while you type after completion is enabled. Completion can be enabled by setting |g:ale_completion_enabled| to `1`. The delay for completion can be configured with |g:ale_completion_delay|. ALE will @@ -542,6 +599,17 @@ only suggest so many possible matches for completion. The maximum number of items can be controlled with |g:ale_completion_max_suggestions|. +------------------------------------------------------------------------------- +5.2 Go To Definition *ale-go-to-definition* + +ALE supports jumping to the files and locations where symbols are defined +through any enabled LSP linters. The locations ALE will jump to depend on the +information returned by LSP servers. The following commands are supported: + +|ALEGoToDefinition| - Open the definition of the symbol under the cursor. +|ALEGoToDefinitionInTab| - The same, but for opening the file in a new tab. + + =============================================================================== 6. Global Options *ale-options* @@ -556,6 +624,19 @@ g:airline#extensions#ale#enabled *g:airline#extensions#ale#enabled* |airline#extensions#ale#warning_symbol|. +g:ale_cache_executable_check_failures *g:ale_cache_executable_check_failures* + + Type: |Number| + Default: `0` + + When set to `1`, ALE will cache failing executable checks for linters. By + default, only executable checks which succeed will be cached. + + When this option is set to `1`, Vim will have to be restarted after new + executables are installed for ALE to be able to run linters for those + executables. + + g:ale_change_sign_column_color *g:ale_change_sign_column_color* Type: |Number| @@ -575,6 +656,39 @@ g:ale_change_sign_column_color *g:ale_change_sign_column_color* windows. +g:ale_command_wrapper *g:ale_command_wrapper* + *b:ale_command_wrapper* + Type: |String| + Default: `''` + + An option for wrapping all commands that ALE runs, for linters, fixers, + and LSP commands. This option can be set globally, or for specific buffers. + + This option can be used to apply nice to all commands. For example: > + + " Prefix all commands with nice. + let g:ale_command_wrapper = 'nice -n5' +< + Use the |ALEInfo| command to view the commands that are run. All of the + arguments for commands will be put on the end of the wrapped command by + default. A `%*` marker can be used to spread the arguments in the wrapped + command. > + + " Has the same effect as the above. + let g:ale_command_wrapper = 'nice -n5 %*' +< + + For passing all of the arguments for a command as one argument to a wrapper, + `%@` can be used instead. > + + " Will result in say: /bin/bash -c 'other-wrapper -c "some command" -x' + let g:ale_command_wrapper = 'other-wrapper -c %@ -x' +< + For commands including `&&` or `;`, only the last command in the list will + be passed to the wrapper. `&&` is most commonly used in ALE to change the + working directory before running a command. + + g:ale_completion_delay *g:ale_completion_delay* Type: |Number| @@ -967,6 +1081,7 @@ g:ale_linters *g:ale_linters* \ 'csh': ['shell'], \ 'go': ['gofmt', 'golint', 'go vet'], \ 'help': [], + \ 'perl': ['perlcritic'], \ 'python': ['flake8', 'mypy', 'pylint'], \ 'rust': ['cargo'], \ 'spec': [], @@ -1328,7 +1443,7 @@ g:ale_virtualenv_dir_names *g:ale_virtualenv_dir_names* b:ale_virtualenv_dir_names *b:ale_virtualenv_dir_names* Type: |List| - Default: `['.env', 'env', 've-py3', 've', 'virtualenv']` + Default: `['.env', 'env', 've-py3', 've', 'virtualenv', 'venv']` A list of directory names to be used when searching upwards from Python files to discover virtulenv directories with. @@ -1338,6 +1453,18 @@ b:ale_virtualenv_dir_names *b:ale_virtualenv_dir_names* directory containing the Python file to find virtualenv paths. +g:ale_warn_about_trailing_blank_lines *g:ale_warn_about_trailing_blank_lines* +b:ale_warn_about_trailing_blank_lines *b:ale_warn_about_trailing_blank_lines* + + Type: |Number| + Default: `1` + + When this option is set to `1`, warnings about trailing blank lines will be + shown. + + This option behaves similarly to |g:ale_warn_about_trailing_whitespace|. + + g:ale_warn_about_trailing_whitespace *g:ale_warn_about_trailing_whitespace* b:ale_warn_about_trailing_whitespace *b:ale_warn_about_trailing_whitespace* @@ -1345,10 +1472,9 @@ b:ale_warn_about_trailing_whitespace *b:ale_warn_about_trailing_whitespace* Default: `1` When this option is set to `1`, warnings relating to trailing whitespace on - lines will be shown in signs, the loclist, and echo messages, etc. If these - errors are found to be too irritating while edits are being made, and you - have configured Vim to automatically remove trailing whitespace, then you - can disable these warnings for some linters by setting this option to `0`. + lines will be shown. If warnings are too irritating while editing buffers, + and you have configured Vim to automatically remove trailing whitespace, + you can disable these warnings by setting this option to `0`. Not all linters may respect this option. If a linter does not, please file a bug report, and it may be possible to add such support. @@ -1555,6 +1681,22 @@ ALEFixSuggest *ALEFixSuggest* See |ale-fix| for more information. +ALEGoToDefinition *ALEGoToDefinition* + + Jump to the definition of a symbol under the cursor using the enabled LSP + linters for the buffer. ALE will jump to a definition if an LSP server + provides a location to jump to. Otherwise, ALE will do nothing. + + A plug mapping `<Plug>(ale_go_to_definition)` is defined for this command. + + +ALEGoToDefinitionInTab *ALEGoToDefinitionInTab* + + The same as |ALEGoToDefinition|, but opens results in a new tab. + + A plug mapping `<Plug>(ale_go_to_definition_in_tab)` is defined for this + command. + *:ALELint* ALELint *ALELint* @@ -1768,7 +1910,8 @@ ale#engine#ManageDirectory(buffer, directory) *ale#engine#ManageDirectory()* files. -ale#fix#registry#Add(name, func, filetypes, desc) *ale#fix#registry#Add()* +ale#fix#registry#Add(name, func, filetypes, desc, [aliases]) + *ale#fix#registry#Add()* Given a |String| `name` for a name to add to the registry, a |String| `func` for a function name, a |List| `filetypes` for a list of filetypes to @@ -1778,6 +1921,11 @@ ale#fix#registry#Add(name, func, filetypes, desc) *ale#fix#registry#Add()* The `name` can then be used for |g:ale_fixers| in place of the function name, and suggested for fixing files. + An optional |List| of |String|s for aliases can be passed as the `aliases` + argument. These aliases can also be used for looking up a fixer function. + ALE will search for fixers in the registry first by `name`, then by their + `aliases`. + ale#linter#Define(filetype, linter) *ale#linter#Define()* @@ -1949,7 +2097,7 @@ ale#linter#Define(filetype, linter) *ale#linter#Define()* the file on disk, including |g:ale_lint_on_enter| and |g:ale_lint_on_save|. Linters with this option set to `1` will also be run when linters are run - manually, per |ALELint-autocmd|. + manually, per |ALELintPost-autocmd|. When this option is set to `1`, `read_buffer` will be set automatically to `0`. The two options cannot @@ -2083,20 +2231,34 @@ ale#statusline#Count(buffer) *ale#statusline#Count()* `total` -> The total number of problems. -ALELint *ALELint-autocmd* +ALELintPre *ALELintPre-autocmd* +ALELintPost *ALELintPost-autocmd* - This |User| autocommand is triggered by ALE every time it completes a lint - cycle. It can be used to update statuslines, send notifications, or - complete any other operation that needs to be done after linting has been - performed. - - For example, you can echo a message when linting is complete like so: - > - autocmd User ALELint unsilent echom 'ALE run!' -< + These |User| autocommands are triggered before and after every lint cycle. + They can be used to update statuslines, send notifications, etc. The autocmd commands are run with |:silent|, so |:unsilent| is required for echoing messges. + For example to change the color of the statusline while the linter is + running: +> + augroup ALEProgress + autocmd! + autocmd User ALELintPre hi Statusline ctermfg=darkgrey + autocmd User ALELintPOST hi Statusline ctermfg=NONE + augroup end +< + Or to display the progress in the statusline: +> + let s:ale_running = 0 + let l:stl .= '%{s:ale_running ? "[linting]" : ""}' + augroup ALEProgress + autocmd! + autocmd User ALELintPre let s:ale_running = 1 | redrawstatus + autocmd User ALELintPost let s:ale_running = 0 | redrawstatus + augroup end +< + =============================================================================== 10. Special Thanks *ale-special-thanks* |