diff options
Diffstat (limited to 'doc')
41 files changed, 1702 insertions, 100 deletions
diff --git a/doc/ale-ada.txt b/doc/ale-ada.txt new file mode 100644 index 00000000..93e3261a --- /dev/null +++ b/doc/ale-ada.txt @@ -0,0 +1,25 @@ +=============================================================================== +ALE Ada Integration *ale-ada-options* + + +=============================================================================== +gcc *ale-ada-gcc* + +g:ale_ada_gcc_executable *g:ale_ada_gcc_executable* + *b:ale_ada_gcc_executable* + Type: |String| + Default: `'gcc'` + +This variable can be changed to use a different executable for gcc. + + +g:ale_ada_gcc_options *g:ale_ada_gcc_options* + *b:ale_ada_gcc_options* + Type: |String| + Default: `'-gnatwa -gnatq'` + + This variable can be set to pass additional options to gcc. + + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-ansible.txt b/doc/ale-ansible.txt new file mode 100644 index 00000000..3a4efaa5 --- /dev/null +++ b/doc/ale-ansible.txt @@ -0,0 +1,16 @@ +=============================================================================== +ALE Ansible Integration *ale-ansible-options* + + +=============================================================================== +ansible-lint *ale-ansible-ansible-lint* + +g:ale_ansible_ansible_lint_executable *g:ale_ansible_ansible_lint_executable* + *b:ale_ansible_ansible_lint_executable* + Type: |String| + Default: `'ansible-lint'` + + This variable can be changed to modify the executable used for ansible-lint. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-c.txt b/doc/ale-c.txt index acff722c..be0a3d77 100644 --- a/doc/ale-c.txt +++ b/doc/ale-c.txt @@ -25,13 +25,28 @@ g:ale_c_build_dir *g:ale_c_build_dir* Type: |String| Default: `''` - A path to the directory containing the `compile_commands.json` file to use - with c-family linters. Usually setting this option to a non-empty string - will override the |g:ale_c_build_dir_names| option to impose a compilation - database (it can be useful if multiple builds are in multiple build - subdirectories in the project tree). - This feature is also most useful for the clang tools linters, wrapped - around LibTooling (namely clang-tidy here) + For programs that can read `compile_commands.json` files, this option can be + set to the directory containing the file for the project. ALE will try to + determine the location of `compile_commands.json` automatically, but if your + file exists in some other directory, you can set this option so ALE will + know where it is. + + This directory will be searched instead of |g:ale_c_build_dir_names|. + + +g:ale_c_parse_compile_commands *g:ale_c_parse_compile_commands* + *b:ale_c_parse_compile_commands* + Type: |Number| + Default: `0` + + If set to `1`, ALE will parse `compile_commands.json` files to automatically + determine flags for C or C++ compilers. ALE will first search for the + nearest `compile_commands.json` file, and then look for + `compile_commands.json` files in the directories for + |g:ale_c_build_dir_names|. + + If |g:ale_c_parse_makefile| or |b:ale_c_parse_makefile| is set to `1`, the + output of `make -n` will be preferred over `compile_commands.json` files. g:ale_c_parse_makefile *g:ale_c_parse_makefile* @@ -115,7 +130,7 @@ overrides |g:ale_c_build_dir_names|. g:ale_c_clangtidy_checks *g:ale_c_clangtidy_checks* *b:ale_c_clangtidy_checks* Type: |List| - Default: `['*']` + Default: `[]` The checks to enable for clang-tidy with the `-checks` argument. @@ -174,6 +189,26 @@ g:ale_c_cppcheck_options *g:ale_c_cppcheck_options* =============================================================================== +cquery *ale-c-cquery* + +g:ale_c_cquery_executable *g:ale_c_cquery_executable* + *b:ale_c_cquery_executable* + Type: |String| + Default: `'cquery'` + + This variable can be changed to use a different executable for cquery. + + +g:ale_cpp_cquery_cache_directory *g:ale_c_cquery_cache_directory* + *b:ale_c_cquery_cache_directory* + Type: |String| + Default: `'~/.cache/cquery'` + + This variable can be changed to decide which directory cquery uses for its +cache. + + +=============================================================================== flawfinder *ale-c-flawfinder* g:ale_c_flawfinder_executable *g:ale_c_flawfinder_executable* @@ -228,4 +263,54 @@ g:ale_c_gcc_options *g:ale_c_gcc_options* =============================================================================== +uncrustify *ale-c-uncrustify* + +g:ale_c_uncrustify_executable *g:ale_c_uncrustify_executable* + *b:ale_c_uncrustify_executable* + Type: |String| + Default: `'uncrustify'` + + This variable can be changed to use a different executable for uncrustify. + + +g:ale_c_uncrustify_options *g:ale_c_uncrustify_options* + *b:ale_c_uncrustify_options* + Type: |String| + Default: `''` + + This variable can be change to modify flags given to uncrustify. + + +=============================================================================== +ccls *ale-c-ccls* + +g:ale_c_ccls_executable *g:ale_c_ccls_executable* + *b:ale_c_ccls_executable* + Type: |String| + Default: `'ccls'` + + This variable can be changed to use a different executable for ccls. + + +g:ale_c_ccls_init_options *g:ale_c_ccls_init_options* + *b:ale_c_ccls_init_options* + Type: |Dictionary| + Default: `{}` + + This variable can be changed to customize ccls initialization options. + Example: > + { + \ 'cacheDirectory': '/tmp/ccls', + \ 'cacheFormat': 'binary', + \ 'diagnostics': { + \ 'onOpen': 0, + \ 'opChange': 1000, + \ }, + \ } +< + Visit https://github.com/MaskRay/ccls/wiki/Initialization-options for all + available options and explanations. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-cpp.txt b/doc/ale-cpp.txt index 8bd111e4..e1f64ab5 100644 --- a/doc/ale-cpp.txt +++ b/doc/ale-cpp.txt @@ -10,6 +10,7 @@ The following C options also apply to some C++ linters too. * |g:ale_c_build_dir_names| * |g:ale_c_build_dir| * |g:ale_c_parse_makefile| +* |g:ale_c_parse_compile_commands| =============================================================================== @@ -32,6 +33,25 @@ g:ale_cpp_clang_options *g:ale_cpp_clang_options* =============================================================================== +clangd *ale-cpp-clangd* + +g:ale_cpp_clangd_executable *g:ale_cpp_clangd_executable* + *b:ale_cpp_clangd_executable* + Type: |String| + Default: `'clangd'` + + This variable can be changed to use a different executable for clangd. + + +g:ale_cpp_clangd_options *g:ale_cpp_clangd_options* + *b:ale_cpp_clangd_options* + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to clangd. + + +=============================================================================== clangcheck *ale-cpp-clangcheck* `clang-check` will be run only when files are saved to disk, so that @@ -83,7 +103,7 @@ overrides |g:ale_c_build_dir_names|. g:ale_cpp_clangtidy_checks *g:ale_cpp_clangtidy_checks* *b:ale_cpp_clangtidy_checks* Type: |List| - Default: `['*']` + Default: `[]` The checks to enable for clang-tidy with the `-checks` argument. @@ -119,6 +139,37 @@ g:ale_cpp_clangtidy_options *g:ale_cpp_clangtidy_options* =============================================================================== +clazy *ale-cpp-clazy* + +g:ale_cpp_clazy_executable *g:ale_cpp_clazy_executable* + *b:ale_cpp_clazy_executable* + Type: |String| + Default: `'clazy-standalone'` + + This variable can be changed to use a different executable for clazy. + + +g:ale_cpp_clazy_checks *g:ale_cpp_clazy_checks* + *b:ale_cpp_clazy_checks* + Type: |List| + Default: `['level1']` + + The checks to enable for clazy with the `-checks` argument. + + All options will be joined with commas, and escaped appropriately for + the shell. The `-checks` flag can be removed entirely by setting this + option to an empty List. + + +g:ale_cpp_clazy_options *g:ale_cpp_clazy_options* + *b:ale_cpp_clazy_options* + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to clazy. + + +=============================================================================== cppcheck *ale-cpp-cppcheck* g:ale_cpp_cppcheck_executable *g:ale_cpp_cppcheck_executable* @@ -223,4 +274,41 @@ g:ale_cpp_gcc_options *g:ale_cpp_gcc_options* =============================================================================== +uncrustify *ale-cpp-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== +ccls *ale-cpp-ccls* + +g:ale_cpp_ccls_executable *g:ale_cpp_ccls_executable* + *b:ale_cpp_ccls_executable* + Type: |String| + Default: `'ccls'` + + This variable can be changed to use a different executable for ccls. + + +g:ale_cpp_ccls_init_options *g:ale_cpp_ccls_init_options* + *b:ale_cpp_ccls_init_options* + Type: |Dictionary| + Default: `{}` + + This variable can be changed to customize ccls initialization options. + Example: > + { + \ 'cacheDirectory': '/tmp/ccls', + \ 'cacheFormat': 'binary', + \ 'diagnostics': { + \ 'onOpen': 0, + \ 'opChange': 1000, + \ }, + \ } +< + Visit https://github.com/MaskRay/ccls/wiki/Initialization-options for all + available options and explanations. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-cs.txt b/doc/ale-cs.txt index f65b9f39..01e6348f 100644 --- a/doc/ale-cs.txt +++ b/doc/ale-cs.txt @@ -2,6 +2,10 @@ ALE C# Integration *ale-cs-options* +In addition to the linters that are provided with ALE, C# code can be checked +with the OmniSharp plugin. See here: https://github.com/OmniSharp/omnisharp-vim + + =============================================================================== mcs *ale-cs-mcs* @@ -99,4 +103,10 @@ g:ale_cs_mcsc_assemblies *g:ale_cs_mcsc_assemblies* < =============================================================================== +uncrustify *ale-cs-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-d.txt b/doc/ale-d.txt new file mode 100644 index 00000000..55596062 --- /dev/null +++ b/doc/ale-d.txt @@ -0,0 +1,23 @@ +=============================================================================== +ALE D Integration *ale-d-options* + + +=============================================================================== +dls *ale-d-dls* + +g:ale_d_dls_executable *g:ale_d_dls_executable* + *b:ale_d_dls_executable* + Type: |String| + Default: `dls` + +See |ale-integrations-local-executables| + + +=============================================================================== +uncrustify *ale-d-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== +vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-development.txt b/doc/ale-development.txt index 8a4c1d7d..1e168130 100644 --- a/doc/ale-development.txt +++ b/doc/ale-development.txt @@ -118,6 +118,7 @@ these are reported with ALE's `custom-linting-rules` script. See * Use `snake_case` names for linter names, so they can be used as part of variable names. You can define `aliases` for linters, for other names people might try to configure linters with. +* Use |v:t_TYPE| variables instead of `type()`, which are more readable. Apply the following guidelines when writing Vader test files. @@ -305,7 +306,9 @@ given the above setup are as follows. `AssertLinterNotExecuted` - Check that linters will not be executed. `AssertLSPLanguage language` - Check the language given to an LSP server. `AssertLSPOptions options_dict` - Check the options given to an LSP server. +`AssertLSPConfig config_dict` - Check the config given to an LSP server. `AssertLSPProject project_root` - Check the root given to an LSP server. +`AssertLSPAddress address` - Check the address to an LSP server. =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-dockerfile.txt b/doc/ale-dockerfile.txt index 805cc478..284c6a10 100644 --- a/doc/ale-dockerfile.txt +++ b/doc/ale-dockerfile.txt @@ -3,6 +3,29 @@ ALE Dockerfile Integration *ale-dockerfile-options* =============================================================================== +dockerfile_lint *ale-dockerfile-dockerfile_lint* + +g:ale_dockerfile_dockerfile_lint_executable + *g:ale_dockerfile_dockerfile_lint_executable* + *b:ale_dockerfile_dockerfile_lint_executable* + Type: |String| + Default: `'dockerfile_lint'` + + This variable can be changed to specify the executable used to run + dockerfile_lint. + + +g:ale_dockerfile_dockerfile_lint_options + *g:ale_dockerfile_dockerfile_lint_options* + *b:ale_dockerfile_dockerfile_lint_options* + Type: |String| + Default: `''` + + This variable can be changed to add additional command-line arguments to + the dockerfile lint invocation - like custom rule file definitions. + + +=============================================================================== hadolint *ale-dockerfile-hadolint* hadolint can be found at: https://github.com/hadolint/hadolint diff --git a/doc/ale-elixir.txt b/doc/ale-elixir.txt index ac0ec605..45c6de1d 100644 --- a/doc/ale-elixir.txt +++ b/doc/ale-elixir.txt @@ -5,6 +5,11 @@ ALE Elixir Integration *ale-elixir-options* =============================================================================== mix *ale-elixir-mix* + +The `mix` linter is disabled by default, as it can bee too expensive to run. +See `:help g:ale_linters` + + g:ale_elixir_mix_options *g:ale_elixir_mix_options* *b:ale_elixir_mix_options* Type: |String| @@ -41,4 +46,32 @@ See https://github.com/jeremyjh/dialyxir#with-explaining-stuff for more information. =============================================================================== +elixir-ls *ale-elixir-elixir-ls* + +Elixir Language Server (https://github.com/JakeBecker/elixir-ls) + +g:ale_elixir_elixir_ls_release *g:ale_elixir_elixir_ls_release* + *b:ale_elixir_elixir_ls_release* + Type: |String| + Default: `'elixir-ls'` + + Location of the elixir-ls release directory. This directory must contain + the language server scripts (language_server.sh and language_server.bat). + +g:ale_elixir_elixir_ls_config *g:ale_elixir_elixir_ls_config* + *b:ale_elixir_elixir_ls_config* + Type: |Dictionary| + Default: `{}` + + Dictionary containing configuration settings that will be passed to the + language server. For example, to disable Dialyzer: > + { + \ 'elixirLS': { + \ 'dialyzerEnabled': v:false, + \ }, + \ } +< + Consult the ElixirLS documentation for more information about settings. + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-eruby.txt b/doc/ale-eruby.txt index a0f6f4f8..d75d3868 100644 --- a/doc/ale-eruby.txt +++ b/doc/ale-eruby.txt @@ -1,15 +1,37 @@ =============================================================================== ALE Eruby Integration *ale-eruby-options* -There are three linters for `eruby` files: +There are four linters for `eruby` files: - `erb` - `erubis` - `erubi` +- `ruumba` `erb` is in the Ruby standard library and is mostly universal. `erubis` is the default parser in Rails between 3.0 and 5.1. `erubi` is the default in Rails -5.1 and later. To selectively enable a subset, see |g:ale_linters|. +5.1 and later. `ruumba` can extract Ruby from eruby files and run rubocop on +the result. To selectively enable a subset, see |g:ale_linters|. + +=============================================================================== +ruumba *ale-eruby-ruumba* + +g:ale_eruby_ruumba_executable *g:ale_eruby_ruumba_executable* + *b:ale_eruby_ruumba_executable* + Type: String + Default: `'ruumba` + + Override the invoked ruumba binary. This is useful for running ruumba + from binstubs or a bundle. + + +g:ale_eruby_ruumba_options *g:ale_ruby_ruumba_options* + *b:ale_ruby_ruumba_options* + Type: |String| + Default: `''` + + This variable can be change to modify flags given to ruumba. + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-go.txt b/doc/ale-go.txt index 60d6cb84..43289bd5 100644 --- a/doc/ale-go.txt +++ b/doc/ale-go.txt @@ -7,7 +7,7 @@ Integration Information The `gometalinter` linter is disabled by default. ALE enables `gofmt`, `golint` and `go vet` by default. It also supports `staticcheck`, `go -build` and `gosimple`. +build`, `gosimple`, and `golangserver`. To enable `gometalinter`, update |g:ale_linters| as appropriate: > @@ -20,6 +20,15 @@ the benefit of running a number of linters, more than ALE would by default, while ensuring it doesn't run any linters known to be slow or resource intensive. +g:ale_go_go_executable *g:ale_go_go_options* + *b:ale_go_go_options* + + Type: |String| + Default: `'go'` + + The executable that will be run for the `gobuild` and `govet` linters, and + the `gomod` fixer. + =============================================================================== gobuild *ale-go-gobuild* @@ -45,6 +54,36 @@ g:ale_go_gofmt_options *g:ale_go_gofmt_options* =============================================================================== +golint *ale-go-golint* + +g:ale_go_golint_executable *g:ale_go_golint_executable* + *b:ale_go_golint_executable* + Type: |String| + Default: `'golint'` + + This variable can be set to change the golint executable path. + + +g:ale_go_golint_options *g:ale_go_golint_options* + *b:ale_go_golint_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to the golint linter. + + +=============================================================================== +govet *ale-go-govet* + +g:ale_go_govet_options *g:ale_go_govet_options* + *b:ale_go_govet_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to the go vet linter. + + +=============================================================================== gometalinter *ale-go-gometalinter* `gometalinter` is a `lint_file` linter, which only lints files that are @@ -104,4 +143,57 @@ g:ale_go_staticcheck_lint_package *g:ale_go_staticcheck_lint_package* =============================================================================== +golangserver *ale-go-golangserver* + +g:ale_go_langserver_executable *g:ale_go_langserver_executable* + *b:ale_go_langserver_executable* + Type: |String| + Default: `'go-langserver'` + + Location of the go-langserver binary file. + +g:ale_go_langserver_options *g:ale_go_langserver_options* + *b:ale_go_langserver_options* + Type: |String| + Default: `''` + + Additional options passed to the go-langserver command. Note that the + `-gocodecompletion` option is ignored because it is handled automatically + by the |g:ale_completion_enabled| variable. + + +=============================================================================== +golangci-lint *ale-go-golangci-lint* + +`golangci-lint` is a `lint_file` linter, which only lints files that are +written to disk. This differs from the default behavior of linting the buffer. +See: |ale-lint-file| + +g:ale_go_golangci_lint_executable *g:ale_go_golangci_lint_executable* + *b:ale_go_golangci_lint_executable* + Type: |String| + Default: `'golangci-lint'` + + The executable that will be run for golangci-lint. + + +g:ale_go_golangci_lint_options *g:ale_go_golangci_lint_options* + *b:ale_go_golangci_lint_options* + Type: |String| + Default: `'--enable-all'` + + This variable can be changed to alter the command-line arguments to the + golangci-lint invocation. + + +g:ale_go_golangci_lint_package *g:ale_go_golangci_lint_package* + *b:ale_go_golangci_lint_package* + Type: |Number| + Default: `0` + + When set to `1`, the whole Go package will be checked instead of only the + current file. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-hack.txt b/doc/ale-hack.txt new file mode 100644 index 00000000..4776b8cf --- /dev/null +++ b/doc/ale-hack.txt @@ -0,0 +1,51 @@ +=============================================================================== +ALE Hack Integration *ale-hack-options* + *ale-integration-hack* + + HHAST is disabled by default, as it executes code in the project root. + + Currently linters must be enabled globally. HHAST can be enabled with: + +> + let g:ale_linters = {'hack': ['hack', 'hhast']} +< + +=============================================================================== +hack *ale-hack-hack* + +g:ale_hack_hack_executable *g:ale_hack_hack_executable* + *b:ale_hack_hack_executable* + + Type: |String| + Default: `'hh_client'` + + This variable can be set to use a specific executable to interact with the + Hack typechecker. + + +=============================================================================== +hackfmt *ale-hack-hackfmt* + +g:ale_hack_hackfmt_options *g:ale_hack_hackfmt_options* + *b:ale_hack_hackfmt_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to the hackfmt fixer. + + +=============================================================================== +hhast *ale-hack-hhast* + +g:ale_hack_hhast_executable *g:ale_hack_hhast_executable* + *b:ale_hack_hhast_executable* + + Type: |String| + Default: `'vendor/bin/hhast-lint'` + + This variable can be set to use a specific executable to interact with the + Hack typechecker. + + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-haskell.txt b/doc/ale-haskell.txt index 15d3ce48..a4db683b 100644 --- a/doc/ale-haskell.txt +++ b/doc/ale-haskell.txt @@ -23,6 +23,16 @@ g:ale_haskell_ghc_options *g:ale_haskell_ghc_options* This variable can be changed to modify flags given to ghc. =============================================================================== +ghc-mod *ale-haskell-ghc-mod* + +g:ale_haskell_ghc_mod_executable *g:ale_haskell_ghc_mod_executable* + *b:ale_haskell_ghc_mod_executable* + Type: |String| + Default: `'ghc-mod'` + + This variable can be changed to use a different executable for ghc-mod. + +=============================================================================== cabal-ghc *ale-haskell-cabal-ghc* g:ale_haskell_cabal_ghc_options *g:ale_haskell_cabal_ghc_options* @@ -68,6 +78,25 @@ g:ale_haskell_hfmt_executable *g:ale_haskell_hfmt_executable* This variable can be changed to use a different executable for hfmt. =============================================================================== +hlint *ale-haskell-hlint* + +g:ale_haskell_hlint_executable *g:ale_haskell_hlint_executable* + *b:ale_haskell_hlint_executable* + Type: |String| + Default: `'hlint'` + + This variable can be changed to use a different executable for hlint. + + +g:ale_haskell_hlint_options g:ale_haskell_hlint_options + b:ale_haskell_hlint_options + Type: String + Default: '' + + This variable can be used to pass extra options to the underlying hlint + executable. + +=============================================================================== stack-build *ale-haskell-stack-build* g:ale_haskell_stack_build_options *g:ale_haskell_stack_build_options* @@ -78,6 +107,27 @@ g:ale_haskell_stack_build_options *g:ale_haskell_stack_build_options* We default to using `'--fast'`. Since Stack generates binaries, your programs will be slower unless you separately rebuild them outside of ALE. +=============================================================================== +stylish-haskell *ale-haskell-stylish-haskell* + +g:ale_haskell_stylish_haskell_executable + *g:ale_haskell_stylish_haskell_executable* + *b:ale_haskell_stylish_haskell_executable* + Type: |String| + Default: `'stylish-haskell'` + + This variable can be changed to use a different executable for stylish-haskell. + +=============================================================================== +hie *ale-haskell-hie* + +g:ale_haskell_hie_executable *g:ale_haskell_hie_executable* + *b:ale_haskell_hie_executable* + Type: |String| + Default: `'hie'` + + This variable can be changed to use a different executable for the haskell + ide engine. i.e. `'hie-wrapper'` =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-hcl.txt b/doc/ale-hcl.txt new file mode 100644 index 00000000..8060ac44 --- /dev/null +++ b/doc/ale-hcl.txt @@ -0,0 +1,11 @@ +=============================================================================== +ALE HCL Integration *ale-hcl-options* + + +=============================================================================== +terraform-fmt *ale-hcl-terraform-fmt* + +See |ale-terraform-fmt| for information about the available options. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-html.txt b/doc/ale-html.txt index 98fddc58..1d30929f 100644 --- a/doc/ale-html.txt +++ b/doc/ale-html.txt @@ -80,6 +80,39 @@ g:ale_html_tidy_use_global *g:html_tidy_use_global* =============================================================================== +prettier *ale-html-prettier* + +See |ale-javascript-prettier| for information about the available options. + + +=============================================================================== +stylelint *ale-html-stylelint* + +g:ale_html_stylelint_executable *g:ale_html_stylelint_executable* + *b:ale_html_stylelint_executable* + Type: |String| + Default: `'stylelint'` + + See |ale-integrations-local-executables| + + +g:ale_html_stylelint_options *g:ale_html_stylelint_options* + *b:ale_html_stylelint_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to stylelint. + + +g:ale_html_stylelint_use_global *g:ale_html_stylelint_use_global* + *b:ale_html_stylelint_use_global* + Type: |String| + Default: `0` + + See |ale-integrations-local-executables| + + +=============================================================================== write-good *ale-html-write-good* See |ale-write-good-options| diff --git a/doc/ale-ispc.txt b/doc/ale-ispc.txt new file mode 100644 index 00000000..bf30e8e3 --- /dev/null +++ b/doc/ale-ispc.txt @@ -0,0 +1,24 @@ +=============================================================================== +ALE ISPC Integration *ale-ispc-options* + + +=============================================================================== +ispc *ale-ispc-ispc* + +g:ale_ispc_ispc_executable *g:ale_ispc_ispc_executable* + *b:ale_ispc_ispc_executable* + Type: |String| + Default: `'ispc'` + + This variable can be changed to use a different executable for ispc. + + +g:ale_ispc_ispc_options *g:ale_ispc_ispc_options* + *b:ale_ispc_ispc_options* + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to ispc. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-java.txt b/doc/ale-java.txt index 4481e823..7bba12a3 100644 --- a/doc/ale-java.txt +++ b/doc/ale-java.txt @@ -76,4 +76,33 @@ g:ale_java_pmd_options *g:ale_java_pmd_options* =============================================================================== +javalsp *ale-java-javalsp* + +To enable Java LSP linter you need to download and build the vscode-javac +language server from https://github.com/georgewfraser/vscode-javac. Simply +download the source code and then build the plugin using maven: + + mvn package + +This generates a out/fat-jar.jar file that contains the language server. To +let ALE use this language server you need to set the g:ale_java_javalsp_jar +variable to the absolute path of this jar file. + +g:ale_java_javalsp_jar *g:ale_java_javalsp_jar* + *b:ale_java_javalsp_jar* + + Type: String + Default: 'fat-jar.jar + + Path to the location of the vscode-javac language server plugin. + and -d. They are added automatically. + + +=============================================================================== +uncrustify *ale-java-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-json.txt b/doc/ale-json.txt index 0ec7932d..6a0a9fae 100644 --- a/doc/ale-json.txt +++ b/doc/ale-json.txt @@ -73,6 +73,13 @@ g:ale_json_jq_options *g:ale_json_jq_options* This option can be changed to pass extra options to `jq`. +g:ale_json_jq_filters *g:ale_json_jq_filters* + *b:ale_json_jq_filters* + Type: |String| + Default: `'.'` + + This option can be changed to pass custom filters to `jq`. + =============================================================================== prettier *ale-json-prettier* diff --git a/doc/ale-julia.txt b/doc/ale-julia.txt new file mode 100644 index 00000000..51532419 --- /dev/null +++ b/doc/ale-julia.txt @@ -0,0 +1,20 @@ +=============================================================================== +ALE Julia Integration *ale-julia-options* + +=============================================================================== +languageserver *ale-julia-languageserver* + +To enable Julia LSP linter you need to install the LanguageServer.jl package +within julia. + +g:ale_julia_executable *g:ale_julia_executable* + *b:ale_julia_executable* + + Type: |String| + Default: 'julia' + + Path to the julia exetuable. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + diff --git a/doc/ale-objc.txt b/doc/ale-objc.txt index 35b9a795..0163175a 100644 --- a/doc/ale-objc.txt +++ b/doc/ale-objc.txt @@ -14,4 +14,60 @@ g:ale_objc_clang_options *g:ale_objc_clang_options* =============================================================================== +clangd *ale-objc-clangd* + +g:ale_objc_clangd_executable *g:ale_objc_clangd_executable* + *b:ale_objc_clangd_executable* + Type: |String| + Default: `'clangd'` + + This variable can be changed to use a different executable for clangd. + + +g:ale_objc_clangd_options *g:ale_objc_clangd_options* + *b:ale_objc_clangd_options* + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to clangd. + + +=============================================================================== +uncrustify *ale-objc-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== +ccls *ale-objc-ccls* + +g:ale_objc_ccls_executable *g:ale_objc_ccls_executable* + *b:ale_objc_ccls_executable* + Type: |String| + Default: `'ccls'` + + This variable can be changed to use a different executable for ccls. + + +g:ale_objc_ccls_init_options *g:ale_objc_ccls_init_options* + *b:ale_objc_ccls_init_options* + Type: |Dictionary| + Default: `{}` + + This variable can be changed to customize ccls initialization options. + Example: > + { + \ 'cacheDirectory': '/tmp/ccls', + \ 'cacheFormat': 'binary', + \ 'diagnostics': { + \ 'onOpen': 0, + \ 'opChange': 1000, + \ }, + \ } +< + Visit https://github.com/MaskRay/ccls/wiki/Initialization-options for all + available options and explanations. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-objcpp.txt b/doc/ale-objcpp.txt index 73d68a2e..cd65ab73 100644 --- a/doc/ale-objcpp.txt +++ b/doc/ale-objcpp.txt @@ -14,4 +14,29 @@ g:ale_objcpp_clang_options *g:ale_objcpp_clang_options* =============================================================================== +clangd *ale-objcpp-clangd* + +g:ale_objcpp_clangd_executable *g:ale_objcpp_clangd_executable* + *b:ale_objcpp_clangd_executable* + Type: |String| + Default: `'clangd'` + + This variable can be changed to use a different executable for clangd. + + +g:ale_objcpp_clangd_options *g:ale_objcpp_clangd_options* + *b:ale_objcpp_clangd_options* + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to clangd. + + +=============================================================================== +uncrustify *ale-objcpp-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-ocaml.txt b/doc/ale-ocaml.txt index a7ef8d29..adf17716 100644 --- a/doc/ale-ocaml.txt +++ b/doc/ale-ocaml.txt @@ -34,4 +34,21 @@ g:ale_ocaml_ols_use_global *g:ale_ocaml_ols_use_global* executable. See also |ale-integrations-local-executables|. =============================================================================== +ocamlformat *ale-ocaml-ocamlformat* + +g:ale_ocaml_ocamlformat_executable *g:ale_ocaml_ocamlformat_executable* + *b:ale_ocaml_ocamlformat_executable* + Type: |String| + Default: `'ocamlformat'` + + This variable can be set to pass the path of the ocamlformat fixer. + +g:ale_ocaml_ocamlformat_options *g:ale_ocaml_ocamlformat_options* + *b:ale_ocaml_ocamlformat_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to the ocamlformat fixer. + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-pawn.txt b/doc/ale-pawn.txt new file mode 100644 index 00000000..f836df97 --- /dev/null +++ b/doc/ale-pawn.txt @@ -0,0 +1,12 @@ +=============================================================================== +ALE Pawn Integration *ale-pawn-options* + + +=============================================================================== +uncrustify *ale-pawn-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== +vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-perl6.txt b/doc/ale-perl6.txt new file mode 100644 index 00000000..94953db5 --- /dev/null +++ b/doc/ale-perl6.txt @@ -0,0 +1,43 @@ +=============================================================================== +ALE Perl6 Integration *ale-perl6-options* + +Checking code with `perl6` is disabled by default, as `perl6` code cannot be +checked without executing it. Specifically, we use the `-c` flag to see if +`perl6` code compiles. This does not execute all of the code in a file, but it +does run `BEGIN` and `CHECK` blocks. See `perl6 --help` + +Full support requires a perl6 implementation that supports the +PERL6_EXCEPTIONS_HANDLER environment variable and JSON error output, +which was specified in 6.d. Rakudo version 2018.08 is the first rakudo release +that supports this. See `perl6 --version` and +https://docs.perl6.org/programs/03-environment-variables. + +Without this variable, errors and warnings will appear at line 1, and can be +viewed with ALEDetail. This also serves as a fallback for errors and warnings +that do not trigger JSON output. + +See |g:ale_linters|. + + +=============================================================================== +perl6 *ale-perl6-perl6* + +g:ale_perl6_perl6_executable *g:ale_perl6_perl6_executable* + *b:ale_perl6_perl6_executable* + Type: |String| + Default: `'perl6'` + + This variable can be changed to modify the executable used for linting + perl6. + + +g:ale_perl6_perl6_options *g:ale_perl6_perl6_options* + *b:ale_perl6_perl6_options* + Type: |String| + Default: `'-c -Ilib'` + + This variable can be changed to alter the command-line arguments to the + perl6 invocation. + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-php.txt b/doc/ale-php.txt index 33796f7c..83bc0fd5 100644 --- a/doc/ale-php.txt +++ b/doc/ale-php.txt @@ -1,24 +1,6 @@ =============================================================================== ALE PHP Integration *ale-php-options* - -=============================================================================== -hack *ale-php-hack* - -There are no options for this linter. - - -=============================================================================== -hackfmt *ale-php-hackfmt* - -g:ale_php_hackfmt_options *g:ale_php_hackfmt_options* - *b:ale_php_hackfmt_options* - Type: |String| - Default: `''` - - This variable can be set to pass additional options to the hackfmt fixer. - - =============================================================================== langserver *ale-php-langserver* @@ -132,6 +114,13 @@ g:ale_php_phpcs_use_global *g:ale_php_phpcs_use_global* See |ale-integrations-local-executables| +g:ale_php_phpcs_options *g:ale_php_phpcs_options* + *b:ale_php_phpcs_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to php-cs + =============================================================================== phpmd *ale-php-phpmd* @@ -181,6 +170,16 @@ g:ale_php_phpstan_configuration *g:ale_php_phpstan_configuration* =============================================================================== +psalm *ale-php-psalm* + +g:ale_php_psalm_executable *g:ale_php_psalm_executable* + *b:ale_php_psalm_executable* + Type: |String| + Default: `'psalm'` + + This variable sets the executable used for psalm. + +=============================================================================== php-cs-fixer *ale-php-php-cs-fixer* g:ale_php_cs_fixer_executable *g:ale_php_cs_fixer_executable* @@ -205,4 +204,14 @@ g:ale_php_cs_fixer_options *g:ale_php_cs_fixer_options* This variable can be set to pass additional options to php-cs-fixer. =============================================================================== +php *ale-php-php* + +g:ale_php_php_executable *g:ale_php_php_executable* + *b:ale_php_php_executable* + Type: |String| + Default: `'php'` + + This variable sets the executable used for php. + +=============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-prolog.txt b/doc/ale-prolog.txt new file mode 100644 index 00000000..14062a5a --- /dev/null +++ b/doc/ale-prolog.txt @@ -0,0 +1,56 @@ +=============================================================================== +ALE Prolog Integration *ale-prolog-options* + + +=============================================================================== +swipl *ale-prolog-swipl* + +g:ale_prolog_swipl_executable *g:ale_prolog_swipl_executable* + *b:ale_prolog_swipl_executable* + Type: |String| + Default: `'swipl'` + + The executable that will be run for the `swipl` linter. + +g:ale_prolog_swipl_load *g:ale_prolog_swipl_load* + *b:ale_prolog_swipl_load* + Type: |String| + Default: `'current_prolog_flag(argv, [File]), load_files(File, [sandboxed(true)]), halt.'` + + The prolog goals that will be passed to |g:ale_prolog_swipl_executable| with `-g` option. + + It does: + 1. Takes the first command argument (current file path) + 2. Checks (syntactic / semantic) problems and output to stderr + + NOTE: `sandboxed(true)` prohibits executing some directives such as 'initialization main'. + +g:ale_prolog_swipl_timeout *g:ale_prolog_swipl_timeout* + *b:ale_prolog_swipl_timeout* + Type: |Number| + Default: `3` + + Timeout seconds to detect long-running linter. + It is done by setting SIGALRM. + See |g:ale_prolog_swipl_alarm| and |g:ale_prolog_swipl_alarm_handler|. + +g:ale_prolog_swipl_alarm *g:ale_prolog_swipl_alarm* + *b:ale_prolog_swipl_alarm* + Type: |String| + Default: `'alarm(%t, (%h), _, [])'` + + The prolog goals to be expected to set SIGALRM. + `%t` is replaced by |g:ale_prolog_swipl_timeout|. + `%h` is replaced by |g:ale_prolog_swipl_alarm_handler|. + +g:ale_prolog_swipl_alarm_handler *g:ale_prolog_swipl_alarm_handler* + *b:ale_prolog_swipl_alarm_handler* + Type: |String| + Default: `'writeln(user_error, "ERROR: Exceeded %t seconds, Please change g:prolog_swipl_timeout to modify the limit."), halt(1)'` + + The prolog goals to be expected that will be run on SIGALRM. + `%t` is replaced by |g:ale_prolog_swipl_timeout|. + + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-puppet.txt b/doc/ale-puppet.txt index 7c67484e..daa8c10f 100644 --- a/doc/ale-puppet.txt +++ b/doc/ale-puppet.txt @@ -3,6 +3,26 @@ ALE Puppet Integration *ale-puppet-options* =============================================================================== +puppet *ale-puppet-puppet* + +g:ale_puppet_puppet_executable *g:ale_puppet_puppet_executable* + *b:ale_puppet_puppet_executable* + Type: |String| + Default: `'puppet'` + + This variable can be changed to specify the executable used for puppet. + + +g:ale_puppet_puppet_options *g:ale_puppet_puppet_options* + *b:ale_puppet_puppet_options* + Type: |String| + Default: `''` + + This variable can be changed to add command-line arguments to the + puppet parser validate invocation. + + +=============================================================================== puppetlint *ale-puppet-puppetlint* g:ale_puppet_puppetlint_executable *g:ale_puppet_puppetlint_executable* diff --git a/doc/ale-python.txt b/doc/ale-python.txt index e24ef1aa..0b8e1746 100644 --- a/doc/ale-python.txt +++ b/doc/ale-python.txt @@ -2,6 +2,14 @@ ALE Python Integration *ale-python-options* +g:ale_python_auto_pipenv *g:ale_python_auto_pipenv* + *b:ale_python_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + =============================================================================== ALE Python Project Root Behavior *ale-python-root* @@ -22,6 +30,7 @@ ALE will look for configuration files with the following filenames. > mypy.ini pycodestyle.cfg flake8.cfg + .flake8rc Pipfile Pipfile.lock < @@ -136,6 +145,15 @@ g:ale_python_flake8_use_global *g:ale_python_flake8_use_global* Both variables can be set with `b:` buffer variables instead. +g:ale_python_flake8_auto_pipenv *g:ale_python_flake8_auto_pipenv* + *b:ale_python_flake8_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== isort *ale-python-isort* @@ -210,6 +228,15 @@ g:ale_python_mypy_use_global *g:ale_python_mypy_use_global* See |ale-integrations-local-executables| +g:ale_python_mypy_auto_pipenv *g:ale_python_mypy_auto_pipenv* + *b:ale_python_mypy_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== prospector *ale-python-prospector* @@ -252,6 +279,15 @@ g:ale_python_prospector_use_global *g:ale_python_prospector_use_global* See |ale-integrations-local-executables| +g:ale_python_prospector_auto_pipenv *g:ale_python_prospector_auto_pipenv* + *b:ale_python_prospector_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== pycodestyle *ale-python-pycodestyle* @@ -283,6 +319,15 @@ g:ale_python_pycodestyle_use_global *g:ale_python_pycodestyle_use_global* See |ale-integrations-local-executables| +g:ale_python_pycodestyle_auto_pipenv *g:ale_python_pycodestyle_auto_pipenv* + *b:ale_python_pycodestyle_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== pyflakes *ale-python-pyflakes* @@ -297,6 +342,15 @@ g:ale_python_pyflakes_executable *g:ale_python_pyflakes_executable* Set this to `'pipenv'` to invoke `'pipenv` `run` `pyflakes'`. +g:ale_python_pyflakes_auto_pipenv *g:ale_python_pyflakes_auto_pipenv* + *b:ale_python_pyflakes_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== pylint *ale-python-pylint* @@ -349,6 +403,15 @@ g:ale_python_pylint_use_global *g:ale_python_pylint_use_global* See |ale-integrations-local-executables| +g:ale_python_pylint_auto_pipenv *g:ale_python_pylint_auto_pipenv* + *b:ale_python_pylint_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== pyls *ale-python-pyls* @@ -373,6 +436,15 @@ g:ale_python_pyls_use_global *g:ale_python_pyls_use_global* See |ale-integrations-local-executables| +g:ale_python_pyls_auto_pipenv *g:ale_python_pyls_auto_pipenv* + *b:ale_python_pyls_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + =============================================================================== pyre *ale-python-pyre* @@ -397,6 +469,45 @@ g:ale_python_pyre_use_global *g:ale_python_pyre_use_global* See |ale-integrations-local-executables| +g:ale_python_pyre_auto_pipenv *g:ale_python_pyre_auto_pipenv* + *b:ale_python_pyre_auto_pipenv* + Type: |Number| + Default: `0` + + Detect whether the file is inside a pipenv, and set the executable to `pipenv` + if true. This is overridden by a manually-set executable. + + +=============================================================================== +vulture *ale-python-vulture* + +g:ale_python_vulture_change_directory *g:ale_python_vulture_change_directory* + *b:ale_python_vulture_change_directory* + Type: |Number| + Default: `1` + + If set to `1`, ALE will switch to the directory the Python file being + checked with `vulture` is in before checking it and check the whole project + directory instead of checking only the file opened in the current buffer. + This helps `vulture` to know the context and avoid false-negative results. + + +g:ale_python_vulture_executable *g:ale_python_vulture_executable* + *b:ale_python_vulture_executable* + Type: |String| + Default: `'vulture'` + + See |ale-integrations-local-executables| + + +g:ale_python_vulture_use_global *g:ale_python_vulture_use_global* + *b:ale_python_vulture_use_global* + Type: |Number| + Default: `get(g:, 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + =============================================================================== yapf *ale-python-yapf* diff --git a/doc/ale-ruby.txt b/doc/ale-ruby.txt index 85a3e137..f8a41999 100644 --- a/doc/ale-ruby.txt +++ b/doc/ale-ruby.txt @@ -5,6 +5,15 @@ ALE Ruby Integration *ale-ruby-options* =============================================================================== brakeman *ale-ruby-brakeman* +g:ale_ruby_brakeman_executable *g:ale_ruby_brakeman_executable* + *b:ale_ruby_brakeman_executable* + Type: String + Default: `'brakeman'` + + Override the invoked brakeman binary. Set this to `'bundle'` to invoke + `'bundle` `exec` brakeman'. + + g:ale_ruby_brakeman_options *g:ale_ruby_brakeman_options* *b:ale_ruby_brakeman_options* Type: |String| @@ -20,10 +29,11 @@ g:ale_ruby_rails_best_practices_executable *g:ale_ruby_rails_best_practices_executable* *b:ale_ruby_rails_best_practices_executable* Type: String - Default: 'rails_best_practices' + Default: `'rails_best_practices'` Override the invoked rails_best_practices binary. Set this to `'bundle'` to - invoke `'bundle` `exec` `rails_best_practices'`. + invoke `'bundle` `exec` rails_best_practices'. + g:ale_ruby_rails_best_practices_options *g:ale_ruby_rails_best_practices_options* @@ -37,6 +47,15 @@ g:ale_ruby_rails_best_practices_options =============================================================================== reek *ale-ruby-reek* +g:ale_ruby_reek_executable *g:ale_ruby_reek_executable* + *b:ale_ruby_reek_executable* + Type: String + Default: `'reek'` + + Override the invoked reek binary. Set this to `'bundle'` to invoke + `'bundle` `exec` reek'. + + g:ale_ruby_reek_show_context *g:ale_ruby_reek_show_context* *b:ale_ruby_reek_show_context* Type: |Number| @@ -63,8 +82,8 @@ g:ale_ruby_rubocop_executable *g:ale_ruby_rubocop_executable* Type: String Default: `'rubocop'` - Override the invoked rubocop binary. This is useful for running rubocop - from binstubs or a bundle. + Override the invoked rubocop binary. Set this to `'bundle'` to invoke + `'bundle` `exec` rubocop'. g:ale_ruby_rubocop_options *g:ale_ruby_rubocop_options* @@ -99,4 +118,16 @@ g:ale_ruby_rufo_executable *g:ale_ruby_rufo_executable* =============================================================================== +solargraph *ale-ruby-solargraph* + +g:ale_ruby_solargraph_executable *g:ale_ruby_solargraph_executable* + *b:ale_ruby_solargraph_executable* + Type: String + Default: `'solargraph'` + + Override the invoked solargraph binary. This is useful for running solargraph + from binstubs or a bundle. + + +=============================================================================== 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 d61e5b55..7510dfbd 100644 --- a/doc/ale-rust.txt +++ b/doc/ale-rust.txt @@ -5,8 +5,9 @@ ALE Rust Integration *ale-rust-options* =============================================================================== Integration Information - Since Vim does not detect the rust file type out-of-the-box, you need the - runtime files for rust from here: https://github.com/rust-lang/rust.vim + If Vim does not detect the Rust file type out-of-the-box, you need the runtime + files for Rust distributed in Vim >=8.0.0501 or upstream: + https://github.com/rust-lang/rust.vim Note that there are three possible linters for Rust files: @@ -108,14 +109,45 @@ g:ale_rust_cargo_include_features *g:ale_rust_cargo_include_features* When defined, ALE will set the `--features` option when invoking `cargo` to perform the lint check. See |g:ale_rust_cargo_default_feature_behavior|. + g:ale_rust_cargo_avoid_whole_workspace *g:ale_rust_cargo_avoid_whole_workspace* *b:ale_rust_cargo_avoid_whole_workspace* Type: |Number| Default: `1` When set to 1, and ALE is used to edit a crate that is part of a Cargo - workspace, avoid building the entire entire workspace by invoking - `cargo` directly in the crate's directory. Otherwise, behave as usual. + workspace, avoid building the entire workspace by invoking `cargo` directly + in the crate's directory. Otherwise, behave as usual. + + +g:ale_rust_cargo_use_clippy + *g:ale_rust_cargo_use_clippy* + *b:ale_rust_cargo_use_clippy* + Type: |Number| + Default: `0` + + When set to 1, `cargo clippy` will be used instead of `cargo check` or + `cargo build` as linter. + For details of `cargo clippy`, please visit the following link: + + https://github.com/rust-lang-nursery/rust-clippy + + Since `cargo clippy` is optional toolchain, it's safer to check whether + `cargo-clippy` is executable as follows: +> + let g:ale_rust_cargo_use_clippy = executable('cargo-clippy') +< + +g:ale_rust_cargo_clippy_options + *g:ale_rust_cargo_clippy_options* + *b:ale_rust_cargo_clippy_options* + + Type: |String| + Default: `''` + + When `cargo clippy` is used, this value will be added to a command line to run + it. This variable is useful when you want to add some extra options which + only `cargo clippy` supports (e.g. `--deny`). =============================================================================== @@ -147,11 +179,11 @@ 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'` + Default: `'-Z no-codegen'` 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 + `-Z no-codegen` should only work with nightly builds of Rust. Be careful when setting the options, as running `rustc` could execute code or generate binary files. @@ -166,6 +198,22 @@ g:ale_rust_ignore_error_codes *g:ale_rust_ignore_error_codes* > let g:ale_rust_ignore_error_codes = ['E0432', 'E0433'] +g:ale_rust_ignore_secondary_spans *g:ale_rust_ignore_secondary_spans* + *b:ale_rust_ignore_secondary_spans* + Type: Number + Default: 0 + + When set to 1, instructs the Rust error repporting to ignore secondary + spans. The problem with secondary spans is that they sometimes appear in + error messages before the main cause of the error, for example: > + + 1 src/main.rs|98 col 5 error| this function takes 4 parameters but 5 + parameters were supplied: defined here + 2 src/main.rs|430 col 32 error| this function takes 4 parameters but 5 + parameters were supplied: expected 4 parameters +< + This is due to the sorting by line numbers. With this option set to 1, + the 'defined here' span will not be presented. =============================================================================== rustfmt *ale-rust-rustfmt* diff --git a/doc/ale-scala.txt b/doc/ale-scala.txt index b992d428..ff43cd6c 100644 --- a/doc/ale-scala.txt +++ b/doc/ale-scala.txt @@ -3,6 +3,39 @@ ALE Scala Integration *ale-scala-options* =============================================================================== +sbtserver *ale-scala-sbtserver* + +`sbtserver` requires a running ^1.1.x sbt shell to connect to. It will attempt +to connect via TCP to the address defined in `g:ale_scala_sbtserver_address`. +As `sbt` defaults to listening via unix sockets, place these settings into +your `~/.sbt/1.0/global.sbt` to ensure that ale will always attempt to connect +to the right socket: + +`serverConnectionType := ConnectionType.Tcp` and `serverPort := 4273` + + +g:ale_scala_sbtserver_address *g:ale_scala_sbtserver_address* + *b:ale_scala_sbtserver_address* + Type: |String| + Default: `'127.0.0.1:4273'` + + By default the address is found by parsing `active.json`, however, reading a + file is a blocking operation which should be avoided in ale. The easy way + around this is to configure sbt to always connect to the same port, which + the instructions above describe. + + +g:ale_scala_sbtserver_project_root *g:ale_scala_sbtserver_project_root* + *b:ale_scala_sbtserver_project_root* + Type: |String| + Default: `''` + + By default the project root is found by searching upwards for `build.sbt`. + If the project root is elsewhere, you can override the project root + directory. + + +=============================================================================== scalafmt *ale-scala-scalafmt* If Nailgun is used, override `g:ale_scala_scalafmt_executable` like so: > diff --git a/doc/ale-scss.txt b/doc/ale-scss.txt index 14e6feb7..3ad84fc1 100644 --- a/doc/ale-scss.txt +++ b/doc/ale-scss.txt @@ -18,6 +18,12 @@ g:ale_scss_stylelint_executable *g:ale_scss_stylelint_executable* See |ale-integrations-local-executables| +g:ale_scss_stylelint_options *g:ale_scss_stylelint_options* + *b:ale_scss_stylelint_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to stylelint. g:ale_scss_stylelint_use_global *g:ale_scss_stylelint_use_global* *b:ale_scss_stylelint_use_global* diff --git a/doc/ale-sql.txt b/doc/ale-sql.txt new file mode 100644 index 00000000..75d4b0cf --- /dev/null +++ b/doc/ale-sql.txt @@ -0,0 +1,25 @@ +=============================================================================== +ALE SQL Integration *ale-sql-options* + + +=============================================================================== +sqlfmt *ale-sql-sqlfmt* + +g:ale_sql_sqlfmt_executable *g:ale_sql_sqlfmt_executable* + *b:ale_sql_sqlfmt_executable* + Type: |String| + Default: `'sqlfmt'` + + This variable sets executable used for sqlfmt. + +g:ale_sql_sqlfmt_options *g:ale_sql_sqlfmt_options* + *b:ale_sql_sqlfmt_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to the sqlfmt fixer. + At this time only the -u flag is available to format with upper-case. + + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-terraform.txt b/doc/ale-terraform.txt index ec86e9a0..49a55028 100644 --- a/doc/ale-terraform.txt +++ b/doc/ale-terraform.txt @@ -3,6 +3,24 @@ ALE Terraform Integration *ale-terraform-options* =============================================================================== +fmt *ale-terraform-fmt* + +g:ale_terraform_fmt_executable *g:ale_terraform_fmt_executable* + *b:ale_terraform_fmt_executable* + + Type: |String| + Default: `'terraform'` + + This variable can be changed to use a different executable for terraform. + + +g:ale_terraform_fmt_options *g:ale_terraform_fmt_options* + *b:ale_terraform_fmt_options* + Type: |String| + Default: `''` + + +=============================================================================== tflint *ale-terraform-tflint* g:ale_terraform_tflint_executable *g:ale_terraform_tflint_executable* diff --git a/doc/ale-thrift.txt b/doc/ale-thrift.txt index ed858db8..bb2ec058 100644 --- a/doc/ale-thrift.txt +++ b/doc/ale-thrift.txt @@ -28,7 +28,7 @@ g:ale_thrift_thrift_generators *g:ale_thrift_thrift_generators* g:ale_thrift_thrift_includes *g:ale_thrift_thrift_includes* *b:ale_thrift_thrift_includes* Type: |List| of |String|s - Default: `[]` + Default: `['.']` This list contains paths that will be searched for thrift `include` directives. diff --git a/doc/ale-typescript.txt b/doc/ale-typescript.txt index 1bccf5a3..7dc59820 100644 --- a/doc/ale-typescript.txt +++ b/doc/ale-typescript.txt @@ -19,6 +19,18 @@ See |ale-javascript-prettier| for information about the available options. =============================================================================== tslint *ale-typescript-tslint* +This linter isn't recommended, because TSLint can't be used for checking for +problems while you type. You should probably use the tsserver plugin instead. +tsserver plugins are described here: +https://github.com/Microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin + +Follow the instructions on the plugin website for installing it: +https://github.com/Microsoft/typescript-tslint-plugin + +Then disable TSLint in vimrc or any other Vim configuration file. > + let g:ale_linters_ignore = {'typescript': ['tslint']} +< + g:ale_typescript_tslint_executable *g:ale_typescript_tslint_executable* *b:ale_typescript_tslint_executable* Type: |String| diff --git a/doc/ale-vala.txt b/doc/ale-vala.txt new file mode 100644 index 00000000..ca24bcf4 --- /dev/null +++ b/doc/ale-vala.txt @@ -0,0 +1,12 @@ +=============================================================================== +ALE VALA Integration *ale-vala-options* + + +=============================================================================== +uncrustify *ale-vala-uncrustify* + +See |ale-c-uncrustify| for information about the available options. + + +=============================================================================== +vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-xml.txt b/doc/ale-xml.txt index 6c8af6c7..e43fdefd 100644 --- a/doc/ale-xml.txt +++ b/doc/ale-xml.txt @@ -21,6 +21,14 @@ g:ale_xml_xmllint_options *g:ale_xml_xmllint_options* This variable can be set to pass additional options to xmllint. +g:ale_xml_xmllint_indentsize *g:ale_xml_xmllint_indentsize* + *b:ale_xml_xmllint_indentsize* + Type: |Number| + Default: 2 + + This variable can be sent to specify the amount of spaces used for + indentation. + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale-yaml.txt b/doc/ale-yaml.txt index 044d0b3d..c9a12ea1 100644 --- a/doc/ale-yaml.txt +++ b/doc/ale-yaml.txt @@ -1,7 +1,21 @@ =============================================================================== ALE YAML Integration *ale-yaml-options* +=============================================================================== +prettier *ale-yaml-prettier* + +Website: https://github.com/prettier/prettier + + +Installation +------------------------------------------------------------------------------- +Install prettier either globally or locally: > + + npm install prettier -g # global + npm install prettier # local +< + =============================================================================== swaglint *ale-yaml-swaglint* diff --git a/doc/ale-yang.txt b/doc/ale-yang.txt new file mode 100644 index 00000000..ad619733 --- /dev/null +++ b/doc/ale-yang.txt @@ -0,0 +1,17 @@ +=============================================================================== +ALE YANG Integration *ale-yang-options* + + +=============================================================================== +yang-lsp *ale-yang-lsp* + +g:ale_yang_lsp_executable *g:ale_yang_lsp_executable* + *b:ale_yang_lsp_executable* + Type: |String| + Default: `'yang-language-server'` + + This variable can be changed to use a different executable for yang-lsp. + + +=============================================================================== + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/doc/ale.txt b/doc/ale.txt index 8182c27a..1a37f73f 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -9,15 +9,22 @@ 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| 4. Fixing Problems......................|ale-fix| 5. Language Server Protocol Support.....|ale-lsp| 5.1 Completion........................|ale-completion| 5.2 Go To Definition..................|ale-go-to-definition| 5.3 Find References...................|ale-find-references| + 5.4 Hovering..........................|ale-hover| + 5.5 Symbol Search.....................|ale-symbol-search| 6. Global Options.......................|ale-options| 6.1 Highlights........................|ale-highlights| 6.2 Options for write-good Linter.....|ale-write-good-options| 7. Integration Documentation............|ale-integrations| + ada...................................|ale-ada-options| + gcc.................................|ale-ada-gcc| + ansible...............................|ale-ansible-options| + ansible-lint........................|ale-ansible-ansible-lint| asciidoc..............................|ale-asciidoc-options| write-good..........................|ale-asciidoc-write-good| asm...................................|ale-asm-options| @@ -30,8 +37,11 @@ CONTENTS *ale-contents* clang-format........................|ale-c-clangformat| clangtidy...........................|ale-c-clangtidy| cppcheck............................|ale-c-cppcheck| + cquery..............................|ale-c-cquery| flawfinder..........................|ale-c-flawfinder| gcc.................................|ale-c-gcc| + uncrustify..........................|ale-c-uncrustify| + ccls................................|ale-c-ccls| chef..................................|ale-chef-options| foodcritic..........................|ale-chef-foodcritic| clojure...............................|ale-clojure-options| @@ -42,31 +52,41 @@ CONTENTS *ale-contents* cmakelint...........................|ale-cmake-cmakelint| cpp...................................|ale-cpp-options| clang...............................|ale-cpp-clang| + clangd..............................|ale-cpp-clangd| clangcheck..........................|ale-cpp-clangcheck| clang-format........................|ale-cpp-clangformat| clangtidy...........................|ale-cpp-clangtidy| + clazy...............................|ale-cpp-clazy| cppcheck............................|ale-cpp-cppcheck| cpplint.............................|ale-cpp-cpplint| cquery..............................|ale-cpp-cquery| flawfinder..........................|ale-cpp-flawfinder| gcc.................................|ale-cpp-gcc| + uncrustify..........................|ale-cpp-uncrustify| + ccls................................|ale-cpp-ccls| c#....................................|ale-cs-options| mcs.................................|ale-cs-mcs| mcsc................................|ale-cs-mcsc| + uncrustify..........................|ale-cs-uncrustify| css...................................|ale-css-options| prettier............................|ale-css-prettier| stylelint...........................|ale-css-stylelint| cuda..................................|ale-cuda-options| nvcc................................|ale-cuda-nvcc| + d.....................................|ale-d-options| + dls.................................|ale-d-dls| + uncrustify..........................|ale-d-uncrustify| dart..................................|ale-dart-options| dartanalyzer........................|ale-dart-dartanalyzer| dartfmt.............................|ale-dart-dartfmt| dockerfile............................|ale-dockerfile-options| + dockerfile_lint.....................|ale-dockerfile-dockerfile_lint| hadolint............................|ale-dockerfile-hadolint| elixir................................|ale-elixir-options| mix.................................|ale-elixir-mix| mix_format..........................|ale-elixir-mix-format| dialyxir............................|ale-elixir-dialyxir| + elixir-ls...........................|ale-elixir-elixir-ls| elm...................................|ale-elm-options| elm-format..........................|ale-elm-elm-format| elm-make............................|ale-elm-elm-make| @@ -74,6 +94,7 @@ CONTENTS *ale-contents* erlc................................|ale-erlang-erlc| syntaxerl...........................|ale-erlang-syntaxerl| eruby.................................|ale-eruby-options| + ruumba..............................|ale-eruby-ruumba| fish..................................|ale-fish-options| fortran...............................|ale-fortran-options| gcc.................................|ale-fortran-gcc| @@ -89,32 +110,52 @@ CONTENTS *ale-contents* go....................................|ale-go-options| gobuild.............................|ale-go-gobuild| gofmt...............................|ale-go-gofmt| + golint..............................|ale-go-golint| + govet...............................|ale-go-govet| gometalinter........................|ale-go-gometalinter| staticcheck.........................|ale-go-staticcheck| + golangserver........................|ale-go-golangserver| + golangci-lint.......................|ale-go-golangci-lint| graphql...............................|ale-graphql-options| eslint..............................|ale-graphql-eslint| gqlint..............................|ale-graphql-gqlint| prettier............................|ale-graphql-prettier| + hack..................................|ale-hack-options| + hack................................|ale-hack-hack| + hackfmt.............................|ale-hack-hackfmt| + hhast...............................|ale-hack-hhast| handlebars............................|ale-handlebars-options| ember-template-lint.................|ale-handlebars-embertemplatelint| haskell...............................|ale-haskell-options| brittany............................|ale-haskell-brittany| ghc.................................|ale-haskell-ghc| + ghc-mod.............................|ale-haskell-ghc-mod| cabal-ghc...........................|ale-haskell-cabal-ghc| hdevtools...........................|ale-haskell-hdevtools| hfmt................................|ale-haskell-hfmt| + hlint...............................|ale-haskell-hlint| stack-build.........................|ale-haskell-stack-build| + stylish-haskell.....................|ale-haskell-stylish-haskell| + hie.................................|ale-haskell-hie| + hcl...................................|ale-hcl-options| + terraform-fmt.......................|ale-hcl-terraform-fmt| html..................................|ale-html-options| htmlhint............................|ale-html-htmlhint| tidy................................|ale-html-tidy| + prettier............................|ale-html-prettier| + stylelint...........................|ale-html-stylelint| write-good..........................|ale-html-write-good| idris.................................|ale-idris-options| idris...............................|ale-idris-idris| + ispc..................................|ale-ispc-options| + ispc................................|ale-ispc-ispc| java..................................|ale-java-options| checkstyle..........................|ale-java-checkstyle| javac...............................|ale-java-javac| google-java-format..................|ale-java-google-java-format| pmd.................................|ale-java-pmd| + javalsp.............................|ale-java-javalsp| + uncrustify..........................|ale-java-uncrustify| javascript............................|ale-javascript-options| eslint..............................|ale-javascript-eslint| flow................................|ale-javascript-flow| @@ -131,6 +172,8 @@ CONTENTS *ale-contents* jsonlint............................|ale-json-jsonlint| jq..................................|ale-json-jq| prettier............................|ale-json-prettier| + julia.................................|ale-julia-options| + languageserver......................|ale-julia-languageserver| kotlin................................|ale-kotlin-options| kotlinc.............................|ale-kotlin-kotlinc| ktlint..............................|ale-kotlin-ktlint| @@ -160,36 +203,49 @@ CONTENTS *ale-contents* write-good..........................|ale-nroff-write-good| objc..................................|ale-objc-options| clang...............................|ale-objc-clang| + clangd..............................|ale-objc-clangd| + uncrustify..........................|ale-objc-uncrustify| + ccls................................|ale-objc-ccls| objcpp................................|ale-objcpp-options| clang...............................|ale-objcpp-clang| + clangd..............................|ale-objcpp-clangd| + uncrustify..........................|ale-objcpp-uncrustify| ocaml.................................|ale-ocaml-options| merlin..............................|ale-ocaml-merlin| ols.................................|ale-ocaml-ols| + ocamlformat.........................|ale-ocaml-ocamlformat| + pawn..................................|ale-pawn-options| + uncrustify..........................|ale-pawn-uncrustify| perl..................................|ale-perl-options| perl................................|ale-perl-perl| perlcritic..........................|ale-perl-perlcritic| perltidy............................|ale-perl-perltidy| + perl6.................................|ale-perl6-options| + perl6...............................|ale-perl6-perl6| php...................................|ale-php-options| - hack................................|ale-php-hack| - hackfmt.............................|ale-php-hackfmt| langserver..........................|ale-php-langserver| phan................................|ale-php-phan| phpcbf..............................|ale-php-phpcbf| phpcs...............................|ale-php-phpcs| phpmd...............................|ale-php-phpmd| phpstan.............................|ale-php-phpstan| + psalm...............................|ale-php-psalm| php-cs-fixer........................|ale-php-php-cs-fixer| + php.................................|ale-php-php| po....................................|ale-po-options| write-good..........................|ale-po-write-good| pod...................................|ale-pod-options| write-good..........................|ale-pod-write-good| pony..................................|ale-pony-options| ponyc...............................|ale-pony-ponyc| + prolog................................|ale-prolog-options| + swipl...............................|ale-prolog-swipl| proto.................................|ale-proto-options| protoc-gen-lint.....................|ale-proto-protoc-gen-lint| pug...................................|ale-pug-options| puglint.............................|ale-pug-puglint| puppet................................|ale-puppet-options| + puppet..............................|ale-puppet-puppet| puppetlint..........................|ale-puppet-puppetlint| puppet-languageserver...............|ale-puppet-languageserver| pyrex (cython)........................|ale-pyrex-options| @@ -206,6 +262,7 @@ CONTENTS *ale-contents* pylint..............................|ale-python-pylint| pyls................................|ale-python-pyls| pyre................................|ale-python-pyre| + vulture.............................|ale-python-vulture| yapf................................|ale-python-yapf| qml...................................|ale-qml-options| qmlfmt..............................|ale-qml-qmlfmt| @@ -224,6 +281,7 @@ CONTENTS *ale-contents* rubocop.............................|ale-ruby-rubocop| ruby................................|ale-ruby-ruby| rufo................................|ale-ruby-rufo| + solargraph..........................|ale-ruby-solargraph| rust..................................|ale-rust-options| cargo...............................|ale-rust-cargo| rls.................................|ale-rust-rls| @@ -232,6 +290,7 @@ CONTENTS *ale-contents* sass..................................|ale-sass-options| stylelint...........................|ale-sass-stylelint| scala.................................|ale-scala-options| + sbtserver...........................|ale-scala-sbtserver| scalafmt............................|ale-scala-scalafmt| scalastyle..........................|ale-scala-scalastyle| scss..................................|ale-scss-options| @@ -249,11 +308,14 @@ CONTENTS *ale-contents* solium..............................|ale-solidity-solium| spec..................................|ale-spec-options| rpmlint.............................|ale-spec-rpmlint| + sql...................................|ale-sql-options| + sqlfmt..............................|ale-sql-sqlfmt| stylus................................|ale-stylus-options| stylelint...........................|ale-stylus-stylelint| tcl...................................|ale-tcl-options| nagelfar............................|ale-tcl-nagelfar| terraform.............................|ale-terraform-options| + fmt.................................|ale-terraform-fmt| tflint..............................|ale-terraform-tflint| tex...................................|ale-tex-options| chktex..............................|ale-tex-chktex| @@ -270,6 +332,8 @@ CONTENTS *ale-contents* prettier............................|ale-typescript-prettier| tslint..............................|ale-typescript-tslint| tsserver............................|ale-typescript-tsserver| + vala..................................|ale-vala-options| + uncrustify..........................|ale-vala-uncrustify| verilog/systemverilog.................|ale-verilog-options| iverilog............................|ale-verilog-iverilog| verilator...........................|ale-verilog-verilator| @@ -285,8 +349,11 @@ CONTENTS *ale-contents* xml...................................|ale-xml-options| xmllint.............................|ale-xml-xmllint| yaml..................................|ale-yaml-options| + prettier............................|ale-yaml-prettier| swaglint............................|ale-yaml-swaglint| yamllint............................|ale-yaml-yamllint| + yang..................................|ale-yang-options| + yang-lsp............................|ale-yang-lsp| 8. Commands/Keybinds....................|ale-commands| 9. API..................................|ale-api| 10. Special Thanks......................|ale-special-thanks| @@ -329,17 +396,18 @@ Notes: `^` No linters for text or Vim help filetypes are enabled by default. `!!` These linters check only files on disk. See |ale-lint-file-linters| +* Ada: `gcc` * ASM: `gcc` * Ansible: `ansible-lint` * API Blueprint: `drafter` -* AsciiDoc: `alex`!!, `proselint`, `redpen`, `write-good` +* AsciiDoc: `alex`!!, `proselint`, `redpen`, `write-good`, `vale` * Awk: `gawk` * Bash: `language-server`, `shell` (-n flag), `shellcheck`, `shfmt` * Bourne Shell: `shell` (-n flag), `shellcheck`, `shfmt` -* C: `cppcheck`, `cpplint`!!, `clang`, `clangd`, `clangtidy`!!, `clang-format`, `flawfinder`, `gcc` -* C++ (filetype cpp): `clang`, `clangcheck`!!, `clangtidy`!!, `clang-format`, `cppcheck`, `cpplint`!!, `cquery`, `flawfinder`, `gcc` +* C: `cppcheck`, `cpplint`!!, `clang`, `clangd`, `clangtidy`!!, `clang-format`, `cquery`, `flawfinder`, `gcc`, `uncrustify`, `ccls` +* C++ (filetype cpp): `clang`, `clangd`, `clangcheck`!!, `clangtidy`!!, `clang-format`, `clazy`!!, `cppcheck`, `cpplint`!!, `cquery`, `flawfinder`, `gcc`, `uncrustify`, `ccls` * CUDA: `nvcc`!! -* C#: `mcs`, `mcsc`!! +* C#: `mcs`, `mcsc`!!, `uncrustify` * Chef: `foodcritic` * Clojure: `joker` * CloudFormation: `cfn-python-lint` @@ -349,13 +417,13 @@ Notes: * CSS: `csslint`, `prettier`, `stylelint` * Cucumber: `cucumber` * Cython (pyrex filetype): `cython` -* D: `dmd` +* D: `dls`, `dmd`, `uncrustify` * Dafny: `dafny`!! * Dart: `dartanalyzer`!!, `language_server`, dartfmt!! -* Dockerfile: `hadolint` -* Elixir: `credo`, `dialyxir`, `dogma`, `mix`!! +* Dockerfile: `dockerfile_lint`, `hadolint` +* Elixir: `credo`, `dialyxir`, `dogma`, `mix`!!, `elixir-ls` * Elm: `elm-format, elm-make` -* Erb: `erb`, `erubi`, `erubis` +* Erb: `erb`, `erubi`, `erubis`, `ruumba` * Erlang: `erlc`, `SyntaxErl` * Fish: `fish` (-n flag) * Fortran: `gcc`, `language_server` @@ -363,16 +431,20 @@ Notes: * FusionScript: `fusion-lint` * Git Commit Messages: `gitlint` * GLSL: glslang, `glslls` -* Go: `gofmt`, `goimports`, `go vet`!!, `golint`, `gotype`!!, `gometalinter`!!, `go build`!!, `gosimple`!!, `staticcheck`!! +* Go: `gofmt`, `goimports`, `go mod`!!, `go vet`!!, `golint`, `gotype`!!, `gometalinter`!!, `go build`!!, `gosimple`!!, `staticcheck`!!, `golangserver`, `golangci-lint`!! * GraphQL: `eslint`, `gqlint`, `prettier` +* Hack: `hack`, `hackfmt`, `hhast` * Haml: `haml-lint` * Handlebars: `ember-template-lint` -* Haskell: `brittany`, `ghc`, `cabal-ghc`, `stack-ghc`, `stack-build`!!, `ghc-mod`, `stack-ghc-mod`, `hlint`, `hdevtools`, `hfmt` -* HTML: `alex`!!, `HTMLHint`, `proselint`, `tidy`, `write-good` +* Haskell: `brittany`, `ghc`, `cabal-ghc`, `stylish-haskell`, `stack-ghc`, `stack-build`!!, `ghc-mod`, `hlint`, `hdevtools`, `hfmt`, `hie` +* HCL: `terraform-fmt` +* HTML: `alex`!!, `HTMLHint`, `proselint`, `tidy`, `prettier`, `write-good` * Idris: `idris` -* Java: `checkstyle`, `javac`, `google-java-format`, `PMD` +* ISPC: `ispc`!! +* Java: `checkstyle`, `javac`, `google-java-format`, `PMD`, `javalsp`, `uncrustify` * JavaScript: `eslint`, `flow`, `jscs`, `jshint`, `prettier`, `prettier-eslint`, `prettier-standard`, `standard`, `xo` * JSON: `fixjson`, `jsonlint`, `jq`, `prettier` +* Julia: `languageserver` * Kotlin: `kotlinc`!!, `ktlint`!!, `languageserver` * LaTeX (tex): `alex`!!, `chktex`, `lacheck`, `proselint`, `redpen`, `vale`, `write-good` * Less: `lessc`, `prettier`, `stylelint` @@ -387,48 +459,53 @@ Notes: * Nim: `nim check`!! * nix: `nix-instantiate` * nroff: `alex`!!, `proselint`, `write-good` -* Objective-C: `clang` -* Objective-C++: `clang` -* OCaml: `merlin` (see |ale-ocaml-merlin|), `ols` +* Objective-C: `clang`, `clangd`, `uncrustify`, `ccls` +* Objective-C++: `clang`, `clangd`, `uncrustify` +* OCaml: `merlin` (see |ale-ocaml-merlin|), `ols`, `ocamlformat` +* Pawn: `uncrustify` * Perl: `perl -c`, `perl-critic`, `perltidy` -* PHP: `hack`, `hackfmt`, `langserver`, `phan`, `php -l`, `phpcs`, `phpmd`, `phpstan`, `phpcbf`, `php-cs-fixer` +* Perl6: `perl6 -c` +* PHP: `langserver`, `phan`, `php -l`, `phpcs`, `phpmd`, `phpstan`, `phpcbf`, `php-cs-fixer`, `psalm`!! * PO: `alex`!!, `msgfmt`, `proselint`, `write-good` * Pod: `alex`!!, `proselint`, `write-good` * Pony: `ponyc` +* Prolog: `swipl` * proto: `protoc-gen-lint` * Pug: `pug-lint` * Puppet: `languageserver`, `puppet`, `puppet-lint` -* Python: `autopep8`, `black`, `flake8`, `isort`, `mypy`, `prospector`, `pycodestyle`, `pyls`, `pyre`, `pylint`!!, `yapf` +* Python: `autopep8`, `black`, `flake8`, `isort`, `mypy`, `prospector`, `pycodestyle`, `pyls`, `pyre`, `pylint`!!, `vulture`!!, `yapf` * QML: `qmlfmt`, `qmllint` * R: `lintr` * ReasonML: `merlin`, `ols`, `refmt` * reStructuredText: `alex`!!, `proselint`, `redpen`, `rstcheck`, `vale`, `write-good` * Re:VIEW: `redpen` * RPM spec: `rpmlint` -* Ruby: `brakeman`, `rails_best_practices`!!, `reek`, `rubocop`, `ruby`, `rufo` +* Ruby: `brakeman`, `rails_best_practices`!!, `reek`, `rubocop`, `ruby`, `rufo`, `solargraph` * Rust: `cargo`!!, `rls`, `rustc` (see |ale-integration-rust|), `rustfmt` * SASS: `sass-lint`, `stylelint` * SCSS: `prettier`, `sass-lint`, `scss-lint`, `stylelint` -* Scala: `fsc`, `scalac`, `scalafmt`, `scalastyle` +* Scala: `fsc`, `sbtserver`, `scalac`, `scalafmt`, `scalastyle` * Slim: `slim-lint` * SML: `smlnj` * Solidity: `solhint`, `solium` * Stylus: `stylelint` -* SQL: `sqlint` +* SQL: `sqlint`, `sqlfmt` * Swift: `swiftlint`, `swiftformat` * Tcl: `nagelfar`!! -* Terraform: `tflint` +* Terraform: `fmt`, `tflint` * Texinfo: `alex`!!, `proselint`, `write-good` * Text^: `alex`!!, `proselint`, `redpen`, `textlint`, `vale`, `write-good` * Thrift: `thrift` * TypeScript: `eslint`, `prettier`, `tslint`, `tsserver`, `typecheck` +* VALA: `uncrustify` * Verilog: `iverilog`, `verilator` * Vim: `vint` * Vim help^: `alex`!!, `proselint`, `write-good` * Vue: `prettier`, `vls` * XHTML: `alex`!!, `proselint`, `write-good` * XML: `xmllint` -* YAML: `swaglint`, `yamllint` +* YAML: `prettier`, `swaglint`, `yamllint` +* YANG: `yang-lsp` =============================================================================== 3. Linting *ale-lint* @@ -483,12 +560,14 @@ circumstances. ALE will report problems with your code in the following ways, listed with their relevant options. -* By updating loclist. (On by default) - |g:ale_set_loclist| -* By updating quickfix. (Off by default) - |g:ale_set_quickfix| -* By setting error highlights. - |g:ale_set_highlights| -* By creating signs in the sign column. - |g:ale_set_signs| -* By echoing messages based on your cursor. - |g:ale_echo_cursor| -* By showing balloons for your mouse cursor - |g:ale_set_balloons| +* By updating loclist. (On by default) - |g:ale_set_loclist| +* By updating quickfix. (Off by default) - |g:ale_set_quickfix| +* By setting error highlights. - |g:ale_set_highlights| +* By creating signs in the sign column. - |g:ale_set_signs| +* By echoing messages based on your cursor. - |g:ale_echo_cursor| +* By inline text based on your cursor. - |g:ale_virtualtext_cursor| +* By displaying the preview based on your cursor. - |g:ale_cursor_detail| +* By showing balloons for your mouse cursor - |g:ale_set_balloons| Please consult the documentation for each option, which can reveal some other ways of tweaking the behaviour of each way of displaying problems. You can @@ -509,6 +588,68 @@ ALE offers several options for controlling which linters are run. * Only running linters you asked for. - |g:ale_linters_explicit| +------------------------------------------------------------------------------- +3.1 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 +to display any problems they might find with a buffer. ALE's API includes the +following components for making this possible. + +* |ale#other_source#StartChecking()| - Tell ALE that a buffer is being checked. +* |ale#other_source#ShowResults()| - Show results from another source. +* |ALEWantResults| - A signal for when ALE wants results. + +Other resources can provide results for ALE to display at any time, following +ALE's loclist format. (See |ale-loclist-format|) For example: > + + " Tell ALE to show some results. + " This function can be called at any time. + call ale#other_source#ShowResults(bufnr(''), 'some-linter-name', [ + \ {'text': 'Something went wrong', 'lnum': 13}, + \]) +< + +Other sources should use a unique name for identifying themselves. A single +linter name can be used for all problems from another source, or a series of +unique linter names can be used. Results can be cleared for that source by +providing an empty List. + +|ale#other_source#StartChecking()| should be called whenever another source +starts checking a buffer, so other tools can know that a buffer is being +checked by some plugin. The |ALEWantResults| autocmd event can be used to +start checking a buffer for problems every time that ALE does. When +|ALEWantResults| is signaled, |g:ale_want_results_buffer| will be set to the +number of the buffer that ALE wants to check. +|ale#other_source#StartChecking()| should be called synchronously, and other +sources should perform their checks on a buffer in the background +asynchronously, so they don't interrupt editing. + +A plugin might integrate its own checks with ALE like so: > + + augroup SomeGroupName + autocmd! + autocmd User ALEWantResults call Hook(g:ale_want_results_buffer) + augroup END + + function! DoBackgroundWork(buffer) abort + " Start some work in the background here. + " ... + " Then call WorkDone(a:buffer, results) + endfunction + + function! Hook(buffer) abort + " Tell ALE we're going to check this buffer. + call ale#other_source#StartChecking(a:buffer, 'some-name') + call DoBackgroundWork(a:buffer) + endfunction + + function! WorkDone(buffer, results) abort + " Send results to ALE after they have been collected. + call ale#other_source#ShowResults(buffer, 'some-name', a:results) + endfunction +< + =============================================================================== 4. Fixing Problems *ale-fix* @@ -644,10 +785,10 @@ 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 supports the following LSP/tsserver features: 1. Diagnostics/linting - Enabled via selecting linters as usual. -2. Completion (Only for tsserver) +2. Completion 3. Go to definition @@ -655,18 +796,29 @@ ALE supports the following LSP/tsserver features. 5.1 Completion *ale-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 +Completion is only supported while at 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 -only suggest so many possible matches for completion. The maximum number of -items can be controlled with |g:ale_completion_max_suggestions|. +Completion can be enabled by setting |g:ale_completion_enabled| to `1`. This +setting must be set to `1` before ALE is loaded. The delay for completion can +be configured with |g:ale_completion_delay|. ALE will only suggest so many +possible matches for completion. The maximum number of items can be controlled +with |g:ale_completion_max_suggestions|. If you don't like some of the suggestions you see, you can filter them out with |g:ale_completion_excluded_words| or |b:ale_completion_excluded_words|. + *ale-completion-completopt-bug* + +ALE implements completion as you type by temporarily adjusting |completeopt| +before opening the omnicomplete menu with <C-x><C-o>. In some versions of Vim, +the value set for the option will not be respected. If you experience issues +with Vim automatically inserting text while you type, set the following option +in vimrc, and your issues should go away. > + + set completeopt=menu,menuone,preview,noselect,noinsert +< ------------------------------------------------------------------------------- 5.2 Go To Definition *ale-go-to-definition* @@ -698,12 +850,34 @@ at the cursor taken from LSP linters. The following commands are supported: |ALEHover| - Print information about the symbol at the cursor. -If |b:ale_set_balloons| is set to `1` and your version of Vim supports the +If |g:ale_set_balloons| is set to `1` and your version of Vim supports the |balloon_show()| function, then "hover" information also show up when you move the mouse over a symbol in a buffer. Diagnostic information will take priority over hover information for balloons. If a line contains a problem, that problem will be displayed in a balloon instead of hover information. +For Vim 8.1+ terminals, mouse hovering is disabled by default. Enabling +|balloonexpr| commands in terminals can cause scrolling issues in terminals, +so ALE will not attempt to show balloons unless |g:ale_set_balloons| is set to +`1` before ALE is loaded. + +For enabling mouse support in terminals, you may have to change your mouse +settings. For example: > + + " Example mouse settings. + " You will need to try different settings, depending on your terminal. + set mouse=a + set ttymouse=xterm +< + +------------------------------------------------------------------------------- +5.5 Symbol Search *ale-symbol-search* + +ALE supports searching for workspace symbols via LSP linters. The following +commands are supported: + +|ALESymbolSearch| - Search for symbols in the workspace. + =============================================================================== 6. Global Options *ale-options* @@ -751,6 +925,20 @@ g:ale_change_sign_column_color *g:ale_change_sign_column_color* windows. +g:ale_close_preview_on_insert *g:ale_close_preview_on_insert* + + Type: |Number| + Default: `0` + + When this option is set to `1`, ALE's |preview-window| will be automatically + closed upon entering Insert Mode. This option can be used in combination + with |g:ale_cursor_detail| for automatically displaying the preview window + on problem lines, and automatically closing it again when editing text. + + This setting must be set to `1` before ALE is loaded for this behavior + to be enabled. See |ale-lint-settings-on-startup|. + + g:ale_command_wrapper *g:ale_command_wrapper* *b:ale_command_wrapper* Type: |String| @@ -802,6 +990,9 @@ g:ale_completion_enabled *g:ale_completion_enabled* When this option is set to `1`, completion support will be enabled. + This setting must be set to `1` before ALE is loaded for this behavior + to be enabled. + See |ale-completion| @@ -839,6 +1030,27 @@ g:ale_completion_max_suggestions *g:ale_completion_max_suggestions* Adjust this option as needed, depending on the complexity of your codebase and your available processing power. +g:ale_cursor_detail *g:ale_cursor_detail* + + Type: |Number| + Default: `0` + + When this option is set to `1`, ALE's |preview-window| will be automatically + opened when the cursor moves onto lines with problems. ALE will search for + problems using the same logic that |g:ale_echo_cursor| uses. The preview + window will be closed automatically when you move away from the line. + + Messages are only displayed after a short delay. See |g:ale_echo_delay|. + + The preview window is opened without stealing focus, which means your cursor + will stay in the same buffer as it currently is. + + The preview window can be closed automatically upon entering Insert mode + by setting |g:ale_close_preview_on_insert| to `1`. + + Either this setting or |g:ale_echo_cursor| must be set to `1` before ALE is + loaded for messages to be displayed. See |ale-lint-settings-on-startup|. + g:ale_echo_cursor *g:ale_echo_cursor* @@ -849,11 +1061,14 @@ g:ale_echo_cursor *g:ale_echo_cursor* 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 contains a warning or error. This option can be set to `0` to disable - this behaviour. - The format of the message can be customizable in |g:ale_echo_msg_format|. + this behavior. - You should set this setting once before ALE is loaded, and restart Vim if - you want to change your preferences. See |ale-lint-settings-on-startup|. + Messages are only displayed after a short delay. See |g:ale_echo_delay|. + + The format of the message can be customized with |g:ale_echo_msg_format|. + + Either this setting or |g:ale_cursor_detail| must be set to `1` before ALE + is loaded for messages to be displayed. See |ale-lint-settings-on-startup|. g:ale_echo_delay *g:ale_echo_delay* @@ -862,7 +1077,7 @@ g:ale_echo_delay *g:ale_echo_delay* Default: `10` Given any integer, this option controls the number of milliseconds before - ALE will echo a message for a problem near the cursor. + ALE will echo or preview a message for a problem near the cursor. The value can be increased to decrease the amount of processing ALE will do for files displaying a large number of problems. @@ -980,6 +1195,9 @@ b:ale_fix_on_save *b:ale_fix_on_save* after files are fixed, only when the buffer is open, or re-opened. Changes to the file will be saved to the file on disk. + Files will not be fixed on `:wq`, so you should check your code before + closing a buffer. + Fixing files can be disabled or enabled for individual buffers by setting `b:ale_fix_on_save` to `0` or `1`. @@ -1109,6 +1327,12 @@ g:ale_lint_on_text_changed *g:ale_lint_on_text_changed* ALE will check buffers after a short delay, with a timer which resets on each change. The delay can be configured by adjusting the |g:ale_lint_delay| variable. + *ale-linting-interrupts-mapping* + + Due to a bug in Vim, ALE can interrupt mappings with pending key presses, + per |timeoutlen|. If this happens, follow the advice for enabling + |g:ale_lint_on_insert_leave| below, and set this option to `'normal'`, or + disable it entirely. You should set this setting once before ALE is loaded, and restart Vim if you want to change your preferences. See |ale-lint-settings-on-startup|. @@ -1124,7 +1348,7 @@ g:ale_lint_on_insert_leave *g:ale_lint_on_insert_leave* ALE will not lint files when you escape insert mode with |CTRL-C| by default. You can make ALE lint files with this option when you use |CTRL-C| - with the following keybind. > + with the following mapping. > " Make using Ctrl+C do the same as Escape, to trigger autocmd commands inoremap <C-c> <Esc> @@ -1152,6 +1376,7 @@ g:ale_linter_aliases *g:ale_linter_aliases* \ 'systemverilog': 'verilog', \ 'verilog_systemverilog': ['verilog_systemverilog', 'verilog'], \ 'vimwiki': 'markdown', + \ 'vue': ['vue', 'javascript'], \ 'zsh': 'sh', \} < @@ -1178,10 +1403,12 @@ g:ale_linter_aliases *g:ale_linter_aliases* ALE will first look for aliases for filetypes in the `b:ale_linter_aliases` variable, then `g:ale_linter_aliases`, and then a default Dictionary. - `b:ale_linter_aliases` can be set to a |List|, to tell ALE to load the - linters for specific filetypes for a given buffer. > + `b:ale_linter_aliases` can be set to a |List| or a |String|, to tell ALE to + load the linters for specific filetypes for a given buffer. > let b:ale_linter_aliases = ['html', 'javascript', 'css'] + " OR, Alias a filetype to only a single filetype with a String. + let b:ale_linter_aliases = 'javascript' < No linters will be loaded when the buffer's filetype is empty. @@ -1198,13 +1425,17 @@ g:ale_linters *g:ale_linters* { \ 'csh': ['shell'], + \ 'elixir': ['credo', 'dialyxir', 'dogma', 'elixir-ls'], \ 'go': ['gofmt', 'golint', 'go vet'], + \ 'hack': ['hack'], \ 'help': [], \ 'perl': ['perlcritic'], + \ 'perl6': [], \ 'python': ['flake8', 'mypy', 'pylint'], \ 'rust': ['cargo'], \ 'spec': [], \ 'text': [], + \ 'vue': ['eslint', 'vls'], \ 'zsh': ['shell'], \} < @@ -1652,6 +1883,49 @@ g:ale_use_global_executables *g:ale_use_global_executables* options. +g:ale_virtualtext_cursor *g:ale_virtualtext_cursor* + + Type: |Number| + Default: `0` + + 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 + contains a warning or error. This option can be set to `0` to disable this + behavior. + + Messages are only displayed after a short delay. See |g:ale_virtualtext_delay|. + + Messages can be prefixed prefixed with a string. See |g:ale_virtualtext_prefix|. + + ALE will use the following highlight groups for problems: + + |ALEVirtualTextError| - Items with `'type': 'E'` + |ALEVirtualTextWarning| - Items with `'type': 'W'` + |ALEVirtualTextInfo| - Items with `'type': 'I'` + |ALEVirtualTextStyleError| - Items with `'type': 'E'` and `'sub_type': 'style'` + |ALEVirtualTextStyleWarning| - Items with `'type': 'W'` and `'sub_type': 'style'` + + +g:ale_virtualtext_delay *g:ale_virtualtext_delay* +b:ale_virtualtext_delay *b:ale_virtualtext_delay* + Type: |Number| + Default: `10` + + Given any integer, this option controls the number of milliseconds before + ALE will show a message for a problem near the cursor. + + The value can be increased to decrease the amount of processing ALE will do + for files displaying a large number of problems. + + +g:ale_virtualtext_prefix *g:ale_virtualtext_prefix* + + Type: |String| + Default: `'> '` + + Prefix to be used with |g:ale_virtualtext_cursor|. + g:ale_virtualenv_dir_names *g:ale_virtualenv_dir_names* b:ale_virtualenv_dir_names *b:ale_virtualenv_dir_names* @@ -1718,7 +1992,7 @@ ALEError *ALEError* Default: `highlight link ALEError SpellBad` - The highlight used for highlighted errors. See |g:ale_set_highlights|. + The highlight for highlighted errors. See |g:ale_set_highlights|. ALEErrorLine *ALEErrorLine* @@ -1735,21 +2009,21 @@ ALEErrorSign *ALEErrorSign* Default: `highlight link ALEErrorSign error` - The highlight used for error signs. See |g:ale_set_signs|. + The highlight for error signs. See |g:ale_set_signs|. ALEInfo *ALEInfo.* *ALEInfo-highlight* Default: `highlight link ALEInfo ALEWarning` - The highlight used for highlighted info messages. See |g:ale_set_highlights|. + The highlight for highlighted info messages. See |g:ale_set_highlights|. ALEInfoSign *ALEInfoSign* Default: `highlight link ALEInfoSign ALEWarningSign` - The highlight used for info message signs. See |g:ale_set_signs|. + The highlight for info message signs. See |g:ale_set_signs|. ALEInfoLine *ALEInfoLine* @@ -1766,35 +2040,70 @@ ALEStyleError *ALEStyleError* Default: `highlight link ALEStyleError ALEError` - The highlight used for highlighted style errors. See |g:ale_set_highlights|. + The highlight for highlighted style errors. See |g:ale_set_highlights|. ALEStyleErrorSign *ALEStyleErrorSign* Default: `highlight link ALEStyleErrorSign ALEErrorSign` - The highlight used for style error signs. See |g:ale_set_signs|. + The highlight for style error signs. See |g:ale_set_signs|. ALEStyleWarning *ALEStyleWarning* Default: `highlight link ALEStyleWarning ALEError` - The highlight used for highlighted style warnings. See |g:ale_set_highlights|. + The highlight for highlighted style warnings. See |g:ale_set_highlights|. ALEStyleWarningSign *ALEStyleWarningSign* Default: `highlight link ALEStyleWarningSign ALEWarningSign` - The highlight used for style warning signs. See |g:ale_set_signs|. + The highlight for style warning signs. See |g:ale_set_signs|. + + +ALEVirtualTextError *ALEVirtualTextError* + + Default: `highlight link ALEVirtualTextError ALEError` + + The highlight for virtualtext errors. See |g:ale_virtualtext_cursor|. + + +ALEVirtualTextInfo *ALEVirtualTextInfo* + + Default: `highlight link ALEVirtualTextInfo ALEVirtualTextWarning` + + The highlight for virtualtext info. See |g:ale_virtualtext_cursor|. + + +ALEVirtualTextStyleError *ALEVirtualTextStyleError* + + Default: `highlight link ALEVirtualTextStyleError ALEVirtualTextError` + + The highlight for virtualtext style errors. See |g:ale_virtualtext_cursor|. + + +ALEVirtualTextStyleWarning *ALEVirtualTextStyleWarning* + + Default: `highlight link ALEVirtualTextStyleWarning ALEVirtualTextWarning` + + The highlight for virtualtext style warnings. See |g:ale_virtualtext_cursor|. + + +ALEVirtualTextWarning *ALEVirtualTextWarning* + + Default: `highlight link ALEVirtualTextWarning ALEWarning` + + The highlight for virtualtext errors. See |g:ale_virtualtext_cursor|. ALEWarning *ALEWarning* Default: `highlight link ALEWarning SpellCap` - The highlight used for highlighted warnings. See |g:ale_set_highlights|. + The highlight for highlighted warnings. See |g:ale_set_highlights|. ALEWarningLine *ALEWarningLine* @@ -1811,7 +2120,7 @@ ALEWarningSign *ALEWarningSign* Default: `highlight link ALEWarningSign todo` - The highlight used for warning signs. See |g:ale_set_signs|. + The highlight for warning signs. See |g:ale_set_signs|. ------------------------------------------------------------------------------- @@ -1944,6 +2253,14 @@ ALEHover *ALEHover* A plug mapping `<Plug>(ale_hover)` is defined for this command. + +ALESymbolSearch `<query>` *ALESymbolSearch* + + Search for symbols in the workspace, taken from any available LSP linters. + + The arguments provided to this command will be used as a search query for + finding symbols in the workspace, such as functions, types, etc. + *:ALELint* ALELint *ALELint* @@ -2316,6 +2633,13 @@ ale#linter#Define(filetype, linter) *ale#linter#Define()* `type` - Defaults to `'E'`. `nr` - Defaults to `-1`. + Numeric error code. If `nr` is not `-1`, `code` + likely should contain the string representation of + the same value. + `code` - No default; may be unset. + + Human-readable |String| error code. + `executable` A |String| naming the executable itself which will be run. This value will be used to check if the program requested is installed or not. @@ -2456,6 +2780,9 @@ ale#linter#Define(filetype, linter) *ale#linter#Define()* `initialization_options_callback` may be defined to pass initialization options to the LSP. + An optional `lsp_config` or `lsp_config_callback` may + be defined to pass configuration settings to the LSP. + `address_callback` A |String| or |Funcref| for a callback function accepting a buffer number. A |String| should be returned with an address to connect to. @@ -2516,6 +2843,16 @@ ale#linter#Define(filetype, linter) *ale#linter#Define()* This can be used in place of `initialization_options` when more complicated processing is needed. + `lsp_config` A |Dictionary| of configuration settings for LSPs. + This will be fed (as JSON) to the LSP in the + workspace/didChangeConfiguration command. + + `lsp_config_callback` A |String| or |Funcref| for a callback function + accepting a buffer number. A |Dictionary| should be + returned for configuration settings to pass the LSP. + This can be used in place of `lsp_config` when more + complicated processing is needed. + Only one of `command`, `command_callback`, or `command_chain` should be specified. `command_callback` is generally recommended when a command string needs to be generated dynamically, or any global options are used. @@ -2616,6 +2953,25 @@ ale#linter#PreventLoading(filetype) *ale#linter#PreventLoading()* |runtimepath| for that filetype. This function can be called from vimrc or similar to prevent ALE from loading linters. +ale#other_source#ShowResults(buffer, linter_name, loclist) + *ale#other_source#ShowResults()* + + Show results from another source of information. + + `buffer` must be a valid buffer number, and `linter_name` must be a unique + name for identifying another source of information. The `loclist` given + where the problems in a buffer are, and should be provided in the format ALE + uses for regular linter results. See |ale-loclist-format|. + + +ale#other_source#StartChecking(buffer, linter_name) + *ale#other_source#StartChecking()* + + Tell ALE that another source of information has started checking a buffer. + + `buffer` must be a valid buffer number, and `linter_name` must be a unique + name for identifying another source of information. + ale#statusline#Count(buffer) *ale#statusline#Count()* @@ -2644,10 +3000,21 @@ b:ale_linted *b:ale_linted* echo getbufvar(bufnr(''), 'ale_linted', 0) > 0 ? 'checked' : 'not checked' < +g:ale_want_results_buffer *g:ale_want_results_buffer* + + `g:ale_want_results_buffer` is set to the number of the buffer being checked + when the |ALEWantResults| event is signaled. This variable should be read to + figure out which buffer other sources should lint. + + ALELintPre *ALELintPre-autocmd* + *ALELintPre* ALELintPost *ALELintPost-autocmd* + *ALELintPost* ALEFixPre *ALEFixPre-autocmd* + *ALEFixPre* ALEFixPost *ALEFixPost-autocmd* + *ALEFixPost* These |User| autocommands are triggered before and after every lint or fix cycle. They can be used to update statuslines, send notifications, etc. @@ -2660,8 +3027,8 @@ ALEFixPost *ALEFixPost-autocmd* augroup ALEProgress autocmd! autocmd User ALELintPre hi Statusline ctermfg=darkgrey - autocmd User ALELintPOST hi Statusline ctermfg=NONE - augroup end + autocmd User ALELintPost hi Statusline ctermfg=NONE + augroup END < Or to display the progress in the statusline: > @@ -2671,10 +3038,11 @@ ALEFixPost *ALEFixPost-autocmd* autocmd! autocmd User ALELintPre let s:ale_running = 1 | redrawstatus autocmd User ALELintPost let s:ale_running = 0 | redrawstatus - augroup end + augroup END < ALEJobStarted *ALEJobStarted-autocmd* + *ALEJobStarted* This |User| autocommand is triggered immediately after a job is successfully run. This provides better accuracy for checking linter status with @@ -2682,6 +3050,22 @@ ALEJobStarted *ALEJobStarted-autocmd* triggered before any linters are executed. +ALEWantResults *ALEWantResults-autocmd* + *ALEWantResults* + + This |User| autocommand is triggered before ALE begins a lint cycle. Another + source can respond by calling |ale#other_source#StartChecking()|, and + |ALELintPre| will be signaled thereafter, to allow other plugins to know + that another source is checking the buffer. + + |g:ale_want_results_buffer| will be set to the number for a buffer being + checked when the event is signaled, and deleted after the event is done. + This variable should be read to know which buffer to check. + + Other plugins can use this event to start checking buffers when ALE events + for checking buffers are triggered. + + =============================================================================== 10. Special Thanks *ale-special-thanks* |