From 765adb9da302a0c2034fdf884f89032c9dbbb266 Mon Sep 17 00:00:00 2001 From: Amir Date: Mon, 8 Aug 2022 15:45:56 +0200 Subject: [PATCH] Updated plugins --- .../ale/ale_linters/ansible/ansible_lint.vim | 28 +- .../ale/ale_linters/awk/gawk.vim | 3 +- .../ale/ale_linters/dart/dart_analyze.vim | 13 +- .../ale/ale_linters/dart/dartanalyzer.vim | 36 - .../ale/ale_linters/erlang/elvis.vim | 1 + .../ale/ale_linters/go/golangci_lint.vim | 12 +- .../handlebars/embertemplatelint.vim | 15 +- .../ale/ale_linters/haskell/hls.vim | 2 + .../ale/ale_linters/html/angular.vim | 16 +- .../ale/ale_linters/java/eclipselsp.vim | 5 + .../ale/ale_linters/make/checkmake.vim | 2 +- .../ale/ale_linters/nix/nix.vim | 2 +- .../ale/ale_linters/php/phpstan.vim | 9 +- .../ale/ale_linters/php/psalm.vim | 6 + .../ale/ale_linters/python/pydocstyle.vim | 2 +- .../ale/ale_linters/python/pylama.vim | 85 +- .../ale/ale_linters/ruby/reek.vim | 6 +- .../ale/ale_linters/rust/analyzer.vim | 14 +- .../ale/ale_linters/rust/rustc.vim | 2 +- .../ale/ale_linters/terraform/terraform.vim | 8 +- .../ale/ale_linters/tex/texlab.vim | 2 + sources_non_forked/ale/autoload/ale.vim | 2 +- .../ale/autoload/ale/code_action.vim | 80 +- .../ale/autoload/ale/codefix.vim | 6 +- .../ale/autoload/ale/completion.vim | 13 +- .../ale/autoload/ale/cursor.vim | 18 +- .../ale/autoload/ale/debugging.vim | 3 +- .../ale/autoload/ale/definition.vim | 33 +- .../ale/autoload/ale/engine.vim | 6 + .../ale/autoload/ale/events.vim | 6 + sources_non_forked/ale/autoload/ale/fix.vim | 9 +- .../ale/autoload/ale/fix/registry.vim | 55 + .../ale/autoload/ale/fixers/shfmt.vim | 18 +- .../ale/autoload/ale/fixers/uncrustify.vim | 21 +- .../ale/autoload/ale/floating_preview.vim | 37 +- .../ale/autoload/ale/handlers/alex.vim | 7 +- .../ale/autoload/ale/handlers/cppcheck.vim | 23 +- .../ale/autoload/ale/handlers/haskell.vim | 18 + .../ale/autoload/ale/handlers/sml.vim | 23 +- .../ale/autoload/ale/highlight.vim | 20 + sources_non_forked/ale/autoload/ale/hover.vim | 8 +- sources_non_forked/ale/autoload/ale/job.vim | 18 +- .../ale/autoload/ale/linter.vim | 6 + sources_non_forked/ale/autoload/ale/list.vim | 41 +- sources_non_forked/ale/autoload/ale/lsp.vim | 22 + .../ale/autoload/ale/lsp/message.vim | 37 +- .../ale/autoload/ale/lsp/response.vim | 2 +- .../ale/autoload/ale/lsp/tsserver_message.vim | 16 + .../ale/autoload/ale/lsp_linter.vim | 33 +- .../ale/autoload/ale/organize_imports.vim | 7 +- sources_non_forked/ale/autoload/ale/path.vim | 4 +- .../ale/autoload/ale/python.vim | 1 + .../ale/autoload/ale/references.vim | 69 +- .../ale/autoload/ale/rename.vim | 6 +- .../ale/autoload/ale/symbol.vim | 2 +- sources_non_forked/ale/autoload/ale/test.vim | 21 +- .../ale/autoload/ale/toggle.vim | 3 +- sources_non_forked/ale/autoload/ale/uri.vim | 16 + sources_non_forked/ale/autoload/ale/util.vim | 39 +- .../ale/autoload/ale/virtualtext.vim | 20 - sources_non_forked/ale/doc/ale-ada.txt | 5 + sources_non_forked/ale/doc/ale-asciidoc.txt | 6 + sources_non_forked/ale/doc/ale-c.txt | 6 + sources_non_forked/ale/doc/ale-cmake.txt | 19 + sources_non_forked/ale/doc/ale-cpp.txt | 21 + sources_non_forked/ale/doc/ale-cs.txt | 6 + sources_non_forked/ale/doc/ale-css.txt | 19 + sources_non_forked/ale/doc/ale-dart.txt | 33 - .../ale/doc/ale-development.txt | 28 +- sources_non_forked/ale/doc/ale-dockerfile.txt | 6 + sources_non_forked/ale/doc/ale-elixir.txt | 24 +- sources_non_forked/ale/doc/ale-go.txt | 30 +- sources_non_forked/ale/doc/ale-haskell.txt | 22 +- sources_non_forked/ale/doc/ale-hcl.txt | 5 + sources_non_forked/ale/doc/ale-html.txt | 18 + sources_non_forked/ale/doc/ale-java.txt | 16 +- sources_non_forked/ale/doc/ale-javascript.txt | 13 + sources_non_forked/ale/doc/ale-json.txt | 24 + sources_non_forked/ale/doc/ale-latex.txt | 7 +- sources_non_forked/ale/doc/ale-lua.txt | 30 + sources_non_forked/ale/doc/ale-markdown.txt | 14 +- sources_non_forked/ale/doc/ale-nix.txt | 53 +- sources_non_forked/ale/doc/ale-ocaml.txt | 20 + sources_non_forked/ale/doc/ale-php.txt | 47 + sources_non_forked/ale/doc/ale-powershell.txt | 15 +- sources_non_forked/ale/doc/ale-proto.txt | 42 +- sources_non_forked/ale/doc/ale-python.txt | 122 +- .../ale/doc/ale-restructuredtext.txt | 9 +- sources_non_forked/ale/doc/ale-ruby.txt | 9 +- sources_non_forked/ale/doc/ale-rust.txt | 31 +- sources_non_forked/ale/doc/ale-scala.txt | 6 + sources_non_forked/ale/doc/ale-sh.txt | 6 + sources_non_forked/ale/doc/ale-sql.txt | 7 + .../doc/ale-supported-languages-and-tools.txt | 100 +- sources_non_forked/ale/doc/ale-swift.txt | 13 +- sources_non_forked/ale/doc/ale-terraform.txt | 19 + sources_non_forked/ale/doc/ale-tex.txt | 42 +- sources_non_forked/ale/doc/ale-texinfo.txt | 8 +- sources_non_forked/ale/doc/ale-text.txt | 8 +- sources_non_forked/ale/doc/ale-typescript.txt | 19 +- sources_non_forked/ale/doc/ale-vue.txt | 37 + sources_non_forked/ale/doc/ale-xhtml.txt | 8 +- sources_non_forked/ale/doc/ale-yaml.txt | 98 ++ sources_non_forked/ale/doc/ale-zig.txt | 12 + sources_non_forked/ale/doc/ale.txt | 324 +++- sources_non_forked/ale/plugin/ale.vim | 29 +- .../rplugin/python3/deoplete/sources/ale.py | 1 + sources_non_forked/ale/supported-tools.md | 124 +- sources_non_forked/bufexplorer/README.md | 4 +- .../bufexplorer/doc/bufexplorer.txt | 17 +- .../bufexplorer/plugin/bufexplorer.vim | 20 +- .../ctrlp.vim/autoload/ctrlp.vim | 70 +- .../ctrlp.vim/autoload/ctrlp/buffertag.vim | 10 +- sources_non_forked/ctrlp.vim/doc/ctrlp.cnx | 23 +- sources_non_forked/ctrlp.vim/doc/ctrlp.txt | 41 +- sources_non_forked/dracula/README.md | 6 + .../dracula/after/plugin/dracula.vim | 38 + sources_non_forked/dracula/colors/dracula.vim | 32 +- .../editorconfig-vim/plugin/editorconfig.vim | 2 +- .../tests/plugin/spec/editorconfig_spec.rb | 3 +- .../editorconfig-vim/tests/travis-test.sh | 11 + .../lightline.vim/.github/workflows/ci.yaml | 5 +- .../lightline.vim/autoload/lightline.vim | 4 +- .../lightline/colorscheme/Tomorrow.vim | 3 +- .../lightline/colorscheme/Tomorrow_Night.vim | 3 +- .../colorscheme/Tomorrow_Night_Blue.vim | 4 +- .../colorscheme/Tomorrow_Night_Bright.vim | 3 +- .../colorscheme/Tomorrow_Night_Eighties.vim | 3 +- .../lightline/colorscheme/jellybeans.vim | 3 +- .../lightline/colorscheme/molokai.vim | 3 +- .../lightline/colorscheme/seoul256.vim | 3 +- .../lightline/colorscheme/simpleblack.vim | 4 +- .../lightline/colorscheme/srcery_drk.vim | 1 + .../autoload/lightline/colorscheme/wombat.vim | 4 +- .../lightline.vim/colorscheme.md | 8 + .../lightline.vim/doc/lightline.txt | 4 +- .../lightline.vim/plugin/lightline.vim | 4 +- sources_non_forked/nerdtree/README.markdown | 12 +- sources_non_forked/tlib/CHANGES.TXT | 10 + .../tlib/autoload/tlib/number.vim | 17 +- sources_non_forked/tlib/autoload/tlib/win.vim | 6 +- sources_non_forked/tlib/plugin/02tlib.vim | 6 +- .../typescript-vim/syntax/typescript.vim | 6 +- sources_non_forked/vim-bundle-mako/README.md | 1 + .../vim-bundle-mako/ftdetect/mako.vim | 9 +- .../vim-commentary/plugin/commentary.vim | 5 +- sources_non_forked/vim-flake8/README.mdown | 14 +- .../vim-fugitive/autoload/fugitive.vim | 1475 +++++++++-------- .../vim-fugitive/doc/fugitive.txt | 36 +- .../vim-fugitive/plugin/fugitive.vim | 355 ++-- sources_non_forked/vim-gist/README.md | 8 + sources_non_forked/vim-gist/autoload/gist.vim | 28 +- sources_non_forked/vim-gist/doc/gist-vim.txt | 6 + sources_non_forked/vim-gist/plugin/gist.vim | 5 +- sources_non_forked/vim-gitgutter/README.mkd | 12 + .../vim-gitgutter/autoload/gitgutter.vim | 79 +- .../vim-gitgutter/autoload/gitgutter/diff.vim | 4 + .../autoload/gitgutter/diff_highlight.vim | 26 +- .../autoload/gitgutter/highlight.vim | 24 +- .../vim-gitgutter/autoload/gitgutter/hunk.vim | 34 +- .../autoload/gitgutter/utility.vim | 33 +- .../vim-gitgutter/doc/gitgutter.txt | 39 + .../vim-gitgutter/plugin/gitgutter.vim | 23 +- .../vim-gitgutter/test/test_gitgutter.vim | 100 +- .../vim-javascript/syntax/javascript.vim | 38 +- sources_non_forked/vim-markdown/.travis.yml | 34 - .../vim-markdown/CONTRIBUTING.md | 2 +- sources_non_forked/vim-markdown/README.md | 19 +- .../vim-markdown/after/ftplugin/markdown.vim | 51 +- .../vim-markdown/doc/vim-markdown.txt | 14 +- .../vim-markdown/ftdetect/markdown.vim | 2 +- .../vim-markdown/ftplugin/markdown.vim | 98 +- .../vim-markdown/indent/markdown.vim | 18 +- .../vim-markdown/syntax/markdown.vim | 10 +- .../vim-markdown/test/folding-toc.vader | 1 + .../vim-markdown/test/map.vader | 4 +- .../vim-markdown/test/syntax.md | 2 +- .../vim-markdown/test/table-format.vader | 26 + sources_non_forked/vim-markdown/test/vimrc | 22 +- .../vim-multiple-cursors/Gemfile.lock | 2 +- .../vim-rhubarb/autoload/rhubarb.vim | 63 +- .../vim-ruby/ftplugin/eruby.vim | 10 +- sources_non_forked/vim-ruby/ftplugin/ruby.vim | 40 +- sources_non_forked/vim-ruby/indent/ruby.vim | 12 +- .../spec/indent/method_definitions_spec.rb | 4 + .../vim-ruby/spec/spec_helper.rb | 13 + .../vim-ruby/spec/syntax/methods_spec.rb | 11 + sources_non_forked/vim-ruby/syntax/eruby.vim | 10 +- sources_non_forked/vim-ruby/syntax/ruby.vim | 13 +- .../vim-snipmate/doc/snipMate.txt | 15 +- sources_non_forked/vim-snippets/README.md | 2 +- .../vim-snippets/UltiSnips/cpp.snippets | 3 +- .../vim-snippets/UltiSnips/css.snippets | 4 +- .../vim-snippets/UltiSnips/gitcommit.snippets | 71 +- .../vim-snippets/UltiSnips/lua.snippets | 9 + .../vim-snippets/UltiSnips/python.snippets | 34 +- .../vim-snippets/UltiSnips/rails.snippets | 22 - .../vim-snippets/UltiSnips/tex.snippets | 650 ++++++-- .../vim-snippets/addon-info.json | 4 +- .../vim-snippets/snippets/css.snippets | 16 + .../snippets/dart-flutter.snippets | 30 + .../vim-snippets/snippets/eruby.snippets | 3 + .../snippets/javascript-mocha.snippets | 28 +- .../snippets/javascript/javascript.snippets | 2 +- .../vim-snippets/snippets/jsp.snippets | 12 +- .../vim-snippets/snippets/kotlin.snippets | 5 + .../vim-snippets/snippets/perl6.snippets | 2 +- .../vim-snippets/snippets/python.snippets | 59 +- .../vim-snippets/snippets/rails.snippets | 16 - .../vim-snippets/snippets/ruby.snippets | 2 + .../vim-snippets/snippets/scheme.snippets | 2 +- .../vim-snippets/snippets/sh.snippets | 12 +- .../vim-snippets/snippets/tex.snippets | 6 +- .../vim-snippets/snippets/vue.snippets | 29 +- .../vim-surround/doc/surround.txt | 12 - .../vim-surround/plugin/surround.vim | 19 +- 216 files changed, 4784 insertions(+), 2112 deletions(-) delete mode 100644 sources_non_forked/ale/ale_linters/dart/dartanalyzer.vim delete mode 100644 sources_non_forked/vim-markdown/.travis.yml diff --git a/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim b/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim index 3b443369..d5d98bc4 100644 --- a/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim +++ b/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim @@ -18,9 +18,30 @@ function! ale_linters#ansible#ansible_lint#Handle(buffer, version, lines) abort endif endfor - let l:version_group = ale#semver#GTE(a:version, [5, 0, 0]) ? '>=5.0.0' : '<5.0.0' + let l:version_group = ale#semver#GTE(a:version, [6, 0, 0]) ? '>=6.0.0' : + \ ale#semver#GTE(a:version, [5, 0, 0]) ? '>=5.0.0' : + \ '<5.0.0' let l:output = [] + if '>=6.0.0' is# l:version_group + let l:error_codes = { 'blocker': 'E', 'critical': 'E', 'major': 'W', 'minor': 'W', 'info': 'I' } + let l:linter_issues = json_decode(join(a:lines, '')) + + for l:issue in l:linter_issues + if ale#path#IsBufferPath(a:buffer, l:issue.location.path) + call add(l:output, { + \ 'lnum': exists('l:issue.location.lines.begin.column') ? l:issue.location.lines.begin.line : + \ l:issue.location.lines.begin, + \ 'col': exists('l:issue.location.lines.begin.column') ? l:issue.location.lines.begin.column : 0, + \ 'text': l:issue.check_name, + \ 'detail': l:issue.description, + \ 'code': l:issue.severity, + \ 'type': l:error_codes[l:issue.severity], + \}) + endif + endfor + endif + if '>=5.0.0' is# l:version_group " Matches patterns line the following: " test.yml:3:148: syntax-check 'var' is not a valid attribute for a Play @@ -73,10 +94,13 @@ endfunction function! ale_linters#ansible#ansible_lint#GetCommand(buffer, version) abort let l:commands = { + \ '>=6.0.0': '%e --nocolor -f json -x yaml %s', \ '>=5.0.0': '%e --nocolor --parseable-severity -x yaml %s', \ '<5.0.0': '%e --nocolor -p %t' \} - let l:command = ale#semver#GTE(a:version, [5, 0]) ? l:commands['>=5.0.0'] : l:commands['<5.0.0'] + let l:command = ale#semver#GTE(a:version, [6, 0]) ? l:commands['>=6.0.0'] : + \ ale#semver#GTE(a:version, [5, 0]) ? l:commands['>=5.0.0'] : + \ l:commands['<5.0.0'] return l:command endfunction diff --git a/sources_non_forked/ale/ale_linters/awk/gawk.vim b/sources_non_forked/ale/ale_linters/awk/gawk.vim index f795c57d..fe961ae3 100644 --- a/sources_non_forked/ale/ale_linters/awk/gawk.vim +++ b/sources_non_forked/ale/ale_linters/awk/gawk.vim @@ -9,8 +9,9 @@ function! ale_linters#awk#gawk#GetCommand(buffer) abort " gawk from attempting to execute the body of the script " it is linting. return '%e --source ' . ale#Escape('BEGIN { exit } END { exit 1 }') + \ . ' --lint' \ . ale#Pad(ale#Var(a:buffer, 'awk_gawk_options')) - \ . ' -f %t --lint /dev/null' + \ . ' -f %t /dev/null' endfunction call ale#linter#Define('awk', { diff --git a/sources_non_forked/ale/ale_linters/dart/dart_analyze.vim b/sources_non_forked/ale/ale_linters/dart/dart_analyze.vim index a00162d8..7d67c31c 100644 --- a/sources_non_forked/ale/ale_linters/dart/dart_analyze.vim +++ b/sources_non_forked/ale/ale_linters/dart/dart_analyze.vim @@ -4,15 +4,16 @@ call ale#Set('dart_analyze_executable', 'dart') function! ale_linters#dart#dart_analyze#Handle(buffer, lines) abort - let l:pattern = '\v^ ([a-z]+) - (.+):(\d+):(\d+) - (.+) - (.+)$' + let l:pattern = '\v([a-z]+) - (.+):(\d+):(\d+) - (.+) - (.+)$' let l:output = [] for l:match in ale#util#GetMatches(a:lines, l:pattern) + let [l:type, l:filename, l:lnum, l:col, l:message, l:code] = l:match[1:6] call add(l:output, { - \ 'type': l:match[1] is# 'error' ? 'E' : 'W', - \ 'text': l:match[6] . ': ' . l:match[5], - \ 'lnum': str2nr(l:match[3]), - \ 'col': str2nr(l:match[4]), + \ 'type': l:type is# 'error' ? 'E' : l:type is# 'info' ? 'I' : 'W', + \ 'text': l:code . ': ' . l:message, + \ 'lnum': str2nr(l:lnum), + \ 'col': str2nr(l:col), \}) endfor @@ -22,7 +23,7 @@ endfunction call ale#linter#Define('dart', { \ 'name': 'dart_analyze', \ 'executable': {b -> ale#Var(b, 'dart_analyze_executable')}, -\ 'command': '%e analyze %s', +\ 'command': '%e analyze --fatal-infos %s', \ 'callback': 'ale_linters#dart#dart_analyze#Handle', \ 'lint_file': 1, \}) diff --git a/sources_non_forked/ale/ale_linters/dart/dartanalyzer.vim b/sources_non_forked/ale/ale_linters/dart/dartanalyzer.vim deleted file mode 100644 index 0a4d9742..00000000 --- a/sources_non_forked/ale/ale_linters/dart/dartanalyzer.vim +++ /dev/null @@ -1,36 +0,0 @@ -" Author: w0rp -" Description: Check Dart files with dartanalyzer - -call ale#Set('dart_dartanalyzer_executable', 'dartanalyzer') - -function! ale_linters#dart#dartanalyzer#GetCommand(buffer) abort - let l:path = ale#path#FindNearestFile(a:buffer, '.packages') - - return '%e' - \ . (!empty(l:path) ? ' --packages ' . ale#Escape(l:path) : '') - \ . ' %s' -endfunction - -function! ale_linters#dart#dartanalyzer#Handle(buffer, lines) abort - let l:pattern = '\v^ ([a-z]+) . (.+) at (.+):(\d+):(\d+) . (.+)$' - let l:output = [] - - for l:match in ale#util#GetMatches(a:lines, l:pattern) - call add(l:output, { - \ 'type': l:match[1] is# 'error' ? 'E' : 'W', - \ 'text': l:match[6] . ': ' . l:match[2], - \ 'lnum': str2nr(l:match[4]), - \ 'col': str2nr(l:match[5]), - \}) - endfor - - return l:output -endfunction - -call ale#linter#Define('dart', { -\ 'name': 'dartanalyzer', -\ 'executable': {b -> ale#Var(b, 'dart_dartanalyzer_executable')}, -\ 'command': function('ale_linters#dart#dartanalyzer#GetCommand'), -\ 'callback': 'ale_linters#dart#dartanalyzer#Handle', -\ 'lint_file': 1, -\}) diff --git a/sources_non_forked/ale/ale_linters/erlang/elvis.vim b/sources_non_forked/ale/ale_linters/erlang/elvis.vim index 31dea3dd..0fb85c07 100644 --- a/sources_non_forked/ale/ale_linters/erlang/elvis.vim +++ b/sources_non_forked/ale/ale_linters/erlang/elvis.vim @@ -12,6 +12,7 @@ function! ale_linters#erlang#elvis#Handle(buffer, lines) abort \ 'lnum': str2nr(l:match[1]), \ 'text': s:AbbreviateMessage(l:match[2]), \ 'type': 'W', + \ 'sub_type': 'style', \}) endfor diff --git a/sources_non_forked/ale/ale_linters/go/golangci_lint.vim b/sources_non_forked/ale/ale_linters/go/golangci_lint.vim index 2c4b1a4f..80431b99 100644 --- a/sources_non_forked/ale/ale_linters/go/golangci_lint.vim +++ b/sources_non_forked/ale/ale_linters/go/golangci_lint.vim @@ -24,7 +24,7 @@ function! ale_linters#go#golangci_lint#GetCommand(buffer) abort endfunction function! ale_linters#go#golangci_lint#GetMatches(lines) abort - let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:?:?:?\s\*?(.+)$' + let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:?:?:?\s\*?(.+)\s+\((.+)\)$' return ale#util#GetMatches(a:lines, l:pattern) endfunction @@ -34,14 +34,20 @@ function! ale_linters#go#golangci_lint#Handler(buffer, lines) abort let l:output = [] for l:match in ale_linters#go#golangci_lint#GetMatches(a:lines) + if l:match[5] is# 'typecheck' + let l:msg_type = 'E' + else + let l:msg_type = 'W' + endif + " l:match[1] will already be an absolute path, output from " golangci_lint call add(l:output, { \ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]), \ 'lnum': l:match[2] + 0, \ 'col': l:match[3] + 0, - \ 'type': 'E', - \ 'text': l:match[4], + \ 'type': l:msg_type, + \ 'text': l:match[4] . ' (' . l:match[5] . ')', \}) endfor diff --git a/sources_non_forked/ale/ale_linters/handlebars/embertemplatelint.vim b/sources_non_forked/ale/ale_linters/handlebars/embertemplatelint.vim index 8362bb1c..17c4d08e 100644 --- a/sources_non_forked/ale/ale_linters/handlebars/embertemplatelint.vim +++ b/sources_non_forked/ale/ale_linters/handlebars/embertemplatelint.vim @@ -11,10 +11,17 @@ function! ale_linters#handlebars#embertemplatelint#GetExecutable(buffer) abort endfunction function! ale_linters#handlebars#embertemplatelint#GetCommand(buffer, version) abort - " Reading from stdin was introduced in ember-template-lint@1.6.0 - return ale#semver#GTE(a:version, [1, 6, 0]) - \ ? '%e --json --filename %s' - \ : '%e --json %t' + if ale#semver#GTE(a:version, [4, 0, 0]) + " --json was removed in favor of --format=json in ember-template-lint@4.0.0 + return '%e --format=json --filename %s' + endif + + if ale#semver#GTE(a:version, [1, 6, 0]) + " Reading from stdin was introduced in ember-template-lint@1.6.0 + return '%e --json --filename %s' + endif + + return '%e --json %t' endfunction function! ale_linters#handlebars#embertemplatelint#GetCommandWithVersionCheck(buffer) abort diff --git a/sources_non_forked/ale/ale_linters/haskell/hls.vim b/sources_non_forked/ale/ale_linters/haskell/hls.vim index ae0556a4..7f9efc38 100644 --- a/sources_non_forked/ale/ale_linters/haskell/hls.vim +++ b/sources_non_forked/ale/ale_linters/haskell/hls.vim @@ -4,6 +4,7 @@ " ). It search more project root files. " call ale#Set('haskell_hls_executable', 'haskell-language-server-wrapper') +call ale#Set('haskell_hls_config', {}) function! ale_linters#haskell#hls#FindRootFile(buffer) abort let l:serach_root_files = [ @@ -60,4 +61,5 @@ call ale#linter#Define('haskell', { \ 'command': function('ale_linters#haskell#hls#GetCommand'), \ 'executable': {b -> ale#Var(b, 'haskell_hls_executable')}, \ 'project_root': function('ale_linters#haskell#hls#GetProjectRoot'), +\ 'lsp_config': {b -> ale#Var(b, 'haskell_hls_config')}, \}) diff --git a/sources_non_forked/ale/ale_linters/html/angular.vim b/sources_non_forked/ale/ale_linters/html/angular.vim index 17c0a751..4f368fb4 100644 --- a/sources_non_forked/ale/ale_linters/html/angular.vim +++ b/sources_non_forked/ale/ale_linters/html/angular.vim @@ -11,10 +11,7 @@ function! ale_linters#html#angular#GetProjectRoot(buffer) abort endfunction function! ale_linters#html#angular#GetExecutable(buffer) abort - return ale#path#FindExecutable(a:buffer, 'html_angular', [ - \ 'node_modules/@angular/language-server/bin/ngserver', - \ 'node_modules/@angular/language-server/index.js', - \]) + return 'node' endfunction function! ale_linters#html#angular#GetCommand(buffer) abort @@ -34,9 +31,16 @@ function! ale_linters#html#angular#GetCommand(buffer) abort \ fnamemodify(l:language_service_dir, ':h:h') \ . '/typescript' \) - let l:executable = ale_linters#html#angular#GetExecutable(a:buffer) + let l:script = ale#path#FindExecutable(a:buffer, 'html_angular', [ + \ 'node_modules/@angular/language-server/bin/ngserver', + \ 'node_modules/@angular/language-server/index.js', + \]) - return ale#node#Executable(a:buffer, l:executable) + if !filereadable(l:script) + return '' + endif + + return ale#Escape('node') . ' ' . ale#Escape(l:script) \ . ' --ngProbeLocations ' . ale#Escape(l:language_service_dir) \ . ' --tsProbeLocations ' . ale#Escape(l:typescript_dir) \ . ' --stdio' diff --git a/sources_non_forked/ale/ale_linters/java/eclipselsp.vim b/sources_non_forked/ale/ale_linters/java/eclipselsp.vim index adfd1b09..ad7cbeb4 100644 --- a/sources_non_forked/ale/ale_linters/java/eclipselsp.vim +++ b/sources_non_forked/ale/ale_linters/java/eclipselsp.vim @@ -192,4 +192,9 @@ call ale#linter#Define('java', { \ 'command': function('ale_linters#java#eclipselsp#RunWithVersionCheck'), \ 'language': 'java', \ 'project_root': function('ale#java#FindProjectRoot'), +\ 'initialization_options': { +\ 'extendedClientCapabilities': { +\ 'classFileContentsSupport': v:true +\ } +\ } \}) diff --git a/sources_non_forked/ale/ale_linters/make/checkmake.vim b/sources_non_forked/ale/ale_linters/make/checkmake.vim index 5ebdf91e..d5f95d6f 100644 --- a/sources_non_forked/ale/ale_linters/make/checkmake.vim +++ b/sources_non_forked/ale/ale_linters/make/checkmake.vim @@ -20,6 +20,6 @@ endfunction call ale#linter#Define('make', { \ 'name': 'checkmake', \ 'executable': 'checkmake', -\ 'command': 'checkmake %s --format="{{.LineNumber}}:{{.Rule}}:{{.Violation}}"', +\ 'command': 'checkmake %s --format="{{.LineNumber}}:{{.Rule}}:{{.Violation}}{{\"\r\n\"}}"', \ 'callback': 'ale_linters#make#checkmake#Handle', \}) diff --git a/sources_non_forked/ale/ale_linters/nix/nix.vim b/sources_non_forked/ale/ale_linters/nix/nix.vim index 3d91a9ec..7c2ce963 100644 --- a/sources_non_forked/ale/ale_linters/nix/nix.vim +++ b/sources_non_forked/ale/ale_linters/nix/nix.vim @@ -5,7 +5,7 @@ function! ale_linters#nix#nix#Command(buffer, output, meta) abort let l:version = a:output[0][22:] - if l:version =~# '^\(2.4\|3\).*' + if l:version =~# '^\(2.[4-9]\|3\).*' return 'nix-instantiate --log-format internal-json --parse -' else return 'nix-instantiate --parse -' diff --git a/sources_non_forked/ale/ale_linters/php/phpstan.vim b/sources_non_forked/ale/ale_linters/php/phpstan.vim index 58d4dce2..4dce5d5f 100644 --- a/sources_non_forked/ale/ale_linters/php/phpstan.vim +++ b/sources_non_forked/ale/ale_linters/php/phpstan.vim @@ -1,4 +1,4 @@ -" Author: medains , ardis +" Author: medains , ardis , Arizard " Description: phpstan for PHP files " Set to change the ruleset @@ -6,6 +6,7 @@ let g:ale_php_phpstan_executable = get(g:, 'ale_php_phpstan_executable', 'phpsta let g:ale_php_phpstan_level = get(g:, 'ale_php_phpstan_level', '') let g:ale_php_phpstan_configuration = get(g:, 'ale_php_phpstan_configuration', '') let g:ale_php_phpstan_autoload = get(g:, 'ale_php_phpstan_autoload', '') +let g:ale_php_phpstan_memory_limit = get(g:, 'ale_php_phpstan_memory_limit', '') call ale#Set('php_phpstan_use_global', get(g:, 'ale_use_global_executables', 0)) function! ale_linters#php#phpstan#GetCommand(buffer, version) abort @@ -19,6 +20,11 @@ function! ale_linters#php#phpstan#GetCommand(buffer, version) abort \ ? ' -a ' . ale#Escape(l:autoload) \ : '' + let l:memory_limit = ale#Var(a:buffer, 'php_phpstan_memory_limit') + let l:memory_limit_option = !empty(l:memory_limit) + \ ? ' --memory-limit ' . ale#Escape(l:memory_limit) + \ : '' + let l:level = ale#Var(a:buffer, 'php_phpstan_level') let l:config_file_exists = ale#path#FindNearestFile(a:buffer, 'phpstan.neon') let l:dist_config_file_exists = ale#path#FindNearestFile(a:buffer, 'phpstan.neon.dist') @@ -41,6 +47,7 @@ function! ale_linters#php#phpstan#GetCommand(buffer, version) abort \ . l:configuration_option \ . l:autoload_option \ . l:level_option + \ . l:memory_limit_option \ . ' %s' endfunction diff --git a/sources_non_forked/ale/ale_linters/php/psalm.vim b/sources_non_forked/ale/ale_linters/php/psalm.vim index dbbe9453..f1280057 100644 --- a/sources_non_forked/ale/ale_linters/php/psalm.vim +++ b/sources_non_forked/ale/ale_linters/php/psalm.vim @@ -6,6 +6,12 @@ call ale#Set('php_psalm_options', '') call ale#Set('php_psalm_use_global', get(g:, 'ale_use_global_executables', 0)) function! ale_linters#php#psalm#GetProjectRoot(buffer) abort + let l:composer_path = ale#path#FindNearestFile(a:buffer, 'composer.json') + + if (!empty(l:composer_path)) + return fnamemodify(l:composer_path, ':h') + endif + let l:git_path = ale#path#FindNearestDirectory(a:buffer, '.git') return !empty(l:git_path) ? fnamemodify(l:git_path, ':h:h') : '' diff --git a/sources_non_forked/ale/ale_linters/python/pydocstyle.vim b/sources_non_forked/ale/ale_linters/python/pydocstyle.vim index aa0e8b20..ef0d818c 100644 --- a/sources_non_forked/ale/ale_linters/python/pydocstyle.vim +++ b/sources_non_forked/ale/ale_linters/python/pydocstyle.vim @@ -29,7 +29,7 @@ function! ale_linters#python#pydocstyle#GetCommand(buffer) abort return ale#Escape(l:executable) . l:exec_args \ . ale#Pad(ale#Var(a:buffer, 'python_pydocstyle_options')) - \ . ' %s:t' + \ . ' %s' endfunction function! ale_linters#python#pydocstyle#Handle(buffer, lines) abort diff --git a/sources_non_forked/ale/ale_linters/python/pylama.vim b/sources_non_forked/ale/ale_linters/python/pylama.vim index 73b59b07..14f8071a 100644 --- a/sources_non_forked/ale/ale_linters/python/pylama.vim +++ b/sources_non_forked/ale/ale_linters/python/pylama.vim @@ -22,6 +22,22 @@ function! ale_linters#python#pylama#GetExecutable(buffer) abort return ale#python#FindExecutable(a:buffer, 'python_pylama', ['pylama']) endfunction +function! ale_linters#python#pylama#RunWithVersionCheck(buffer) abort + let l:executable = ale_linters#python#pylama#GetExecutable(a:buffer) + let l:exec_args = l:executable =~? 'pipenv\|poetry$' + \ ? ' run pylama' + \ : '' + + let l:command = ale#Escape(l:executable) . l:exec_args . ' --version' + + return ale#semver#RunWithVersionCheck( + \ a:buffer, + \ l:executable, + \ l:command, + \ function('ale_linters#python#pylama#GetCommand'), + \) +endfunction + function! ale_linters#python#pylama#GetCwd(buffer) abort if ale#Var(a:buffer, 'python_pylama_change_directory') " Pylama loads its configuration from the current directory only, and @@ -35,27 +51,33 @@ function! ale_linters#python#pylama#GetCwd(buffer) abort return '' endfunction -function! ale_linters#python#pylama#GetCommand(buffer) abort +function! ale_linters#python#pylama#GetCommand(buffer, version) abort let l:executable = ale_linters#python#pylama#GetExecutable(a:buffer) let l:exec_args = l:executable =~? 'pipenv\|poetry$' \ ? ' run pylama' \ : '' + " json format is added in version 8.1.4 + " https://github.com/klen/pylama/blob/develop/Changelog + let l:format_json_args = ale#semver#GTE(a:version, [8, 1, 4]) + \ ? ' --format json' + \ : '' + " Note: Using %t to lint changes would be preferable, but many pylama " checks use surrounding paths (e.g. C0103 module name, E0402 relative " import beyond top, etc.). Neither is ideal. return ale#Escape(l:executable) . l:exec_args \ . ale#Pad(ale#Var(a:buffer, 'python_pylama_options')) + \ . l:format_json_args \ . ' %s' endfunction -function! ale_linters#python#pylama#Handle(buffer, lines) abort +function! ale_linters#python#pylama#Handle(buffer, version, lines) abort if empty(a:lines) return [] endif let l:output = ale#python#HandleTraceback(a:lines, 1) - let l:pattern = '\v^.{-}:([0-9]+):([0-9]+): +%(([A-Z][0-9]+):? +)?(.*)$' " First letter of error code is a pylint-compatible message type " http://pylint.pycqa.org/en/latest/user_guide/output.html#source-code-analysis-section @@ -75,16 +97,41 @@ function! ale_linters#python#pylama#Handle(buffer, lines) abort \ 'D': 'style', \} - for l:match in ale#util#GetMatches(a:lines, l:pattern) - call add(l:output, { - \ 'lnum': str2nr(l:match[1]), - \ 'col': str2nr(l:match[2]), - \ 'code': l:match[3], - \ 'type': get(l:pylint_type_to_ale_type, l:match[3][0], 'W'), - \ 'sub_type': get(l:pylint_type_to_ale_sub_type, l:match[3][0], ''), - \ 'text': l:match[4], - \}) - endfor + if ale#semver#GTE(a:version, [8, 1, 4]) + try + let l:errors = json_decode(join(a:lines, '')) + catch + return l:output + endtry + + if empty(l:errors) + return l:output + endif + + for l:error in l:errors + call add(l:output, { + \ 'lnum': l:error['lnum'], + \ 'col': l:error['col'], + \ 'code': l:error['number'], + \ 'type': get(l:pylint_type_to_ale_type, l:error['etype'], 'W'), + \ 'sub_type': get(l:pylint_type_to_ale_sub_type, l:error['etype'], ''), + \ 'text': printf('%s [%s]', l:error['message'], l:error['source']), + \}) + endfor + else + let l:pattern = '\v^.{-}:([0-9]+):([0-9]+): +%(([A-Z][0-9]+):? +)?(.*)$' + + for l:match in ale#util#GetMatches(a:lines, l:pattern) + call add(l:output, { + \ 'lnum': str2nr(l:match[1]), + \ 'col': str2nr(l:match[2]), + \ 'code': l:match[3], + \ 'type': get(l:pylint_type_to_ale_type, l:match[3][0], 'W'), + \ 'sub_type': get(l:pylint_type_to_ale_sub_type, l:match[3][0], ''), + \ 'text': l:match[4], + \}) + endfor + endif return l:output endfunction @@ -93,7 +140,15 @@ call ale#linter#Define('python', { \ 'name': 'pylama', \ 'executable': function('ale_linters#python#pylama#GetExecutable'), \ 'cwd': function('ale_linters#python#pylama#GetCwd'), -\ 'command': function('ale_linters#python#pylama#GetCommand'), -\ 'callback': 'ale_linters#python#pylama#Handle', +\ 'command': function('ale_linters#python#pylama#RunWithVersionCheck'), +\ 'callback': {buffer, lines -> ale#semver#RunWithVersionCheck( +\ buffer, +\ ale_linters#python#pylama#GetExecutable(buffer), +\ '%e --version', +\ {buffer, version -> ale_linters#python#pylama#Handle( +\ buffer, +\ l:version, +\ lines)}, +\ )}, \ 'lint_file': 1, \}) diff --git a/sources_non_forked/ale/ale_linters/ruby/reek.vim b/sources_non_forked/ale/ale_linters/ruby/reek.vim index 226b452e..b6fa9d76 100644 --- a/sources_non_forked/ale/ale_linters/ruby/reek.vim +++ b/sources_non_forked/ale/ale_linters/ruby/reek.vim @@ -19,6 +19,10 @@ function! ale_linters#ruby#reek#GetCommand(buffer, version) abort \ . l:display_name_args endfunction +function! s:GetDocumentationLink(error) abort + return get(a:error, 'documentation_link', get(a:error, 'wiki_link', '')) +endfunction + function! s:BuildText(buffer, error) abort let l:parts = [] @@ -29,7 +33,7 @@ function! s:BuildText(buffer, error) abort call add(l:parts, a:error.message) if ale#Var(a:buffer, 'ruby_reek_show_wiki_link') - call add(l:parts, '[' . a:error.wiki_link . ']') + call add(l:parts, '[' . s:GetDocumentationLink(a:error) . ']') endif return join(l:parts, ' ') diff --git a/sources_non_forked/ale/ale_linters/rust/analyzer.vim b/sources_non_forked/ale/ale_linters/rust/analyzer.vim index 77d946f7..3ead3871 100644 --- a/sources_non_forked/ale/ale_linters/rust/analyzer.vim +++ b/sources_non_forked/ale/ale_linters/rust/analyzer.vim @@ -9,9 +9,21 @@ function! ale_linters#rust#analyzer#GetCommand(buffer) abort endfunction function! ale_linters#rust#analyzer#GetProjectRoot(buffer) abort + " Try to find nearest Cargo.toml for cargo projects let l:cargo_file = ale#path#FindNearestFile(a:buffer, 'Cargo.toml') - return !empty(l:cargo_file) ? fnamemodify(l:cargo_file, ':h') : '' + if !empty(l:cargo_file) + return fnamemodify(l:cargo_file, ':h') + endif + + " Try to find nearest rust-project.json for non-cargo projects + let l:rust_project = ale#path#FindNearestFile(a:buffer, 'rust-project.json') + + if !empty(l:rust_project) + return fnamemodify(l:rust_project, ':h') + endif + + return '' endfunction call ale#linter#Define('rust', { diff --git a/sources_non_forked/ale/ale_linters/rust/rustc.vim b/sources_non_forked/ale/ale_linters/rust/rustc.vim index f140b58b..bc6431ba 100644 --- a/sources_non_forked/ale/ale_linters/rust/rustc.vim +++ b/sources_non_forked/ale/ale_linters/rust/rustc.vim @@ -1,7 +1,7 @@ " Author: Daniel Schemala " Description: rustc for rust files -call ale#Set('rust_rustc_options', '-Z no-codegen') +call ale#Set('rust_rustc_options', '--emit=mir -o /dev/null') function! ale_linters#rust#rustc#RustcCommand(buffer) abort " Try to guess the library search path. If the project is managed by cargo, diff --git a/sources_non_forked/ale/ale_linters/terraform/terraform.vim b/sources_non_forked/ale/ale_linters/terraform/terraform.vim index cf134460..1beb8501 100644 --- a/sources_non_forked/ale/ale_linters/terraform/terraform.vim +++ b/sources_non_forked/ale/ale_linters/terraform/terraform.vim @@ -21,7 +21,13 @@ function! ale_linters#terraform#terraform#GetType(severity) abort endfunction function! ale_linters#terraform#terraform#GetDetail(error) abort - return get(a:error, 'detail', get(a:error, 'summary', '')) + let l:detail = get(a:error, 'detail', '') + + if strlen(l:detail) > 0 + return l:detail + else + return get(a:error, 'summary', '') + endif endfunction function! ale_linters#terraform#terraform#Handle(buffer, lines) abort diff --git a/sources_non_forked/ale/ale_linters/tex/texlab.vim b/sources_non_forked/ale/ale_linters/tex/texlab.vim index 0794bf51..8e96b80b 100644 --- a/sources_non_forked/ale/ale_linters/tex/texlab.vim +++ b/sources_non_forked/ale/ale_linters/tex/texlab.vim @@ -4,6 +4,7 @@ call ale#Set('tex_texlab_executable', 'texlab') call ale#Set('tex_texlab_options', '') +call ale#Set('tex_texlab_config', {}) function! ale_linters#tex#texlab#GetProjectRoot(buffer) abort let l:git_path = ale#path#FindNearestDirectory(a:buffer, '.git') @@ -21,4 +22,5 @@ call ale#linter#Define('tex', { \ 'executable': {b -> ale#Var(b, 'tex_texlab_executable')}, \ 'command': function('ale_linters#tex#texlab#GetCommand'), \ 'project_root': function('ale_linters#tex#texlab#GetProjectRoot'), +\ 'lsp_config': {b -> ale#Var(b, 'tex_texlab_config')}, \}) diff --git a/sources_non_forked/ale/autoload/ale.vim b/sources_non_forked/ale/autoload/ale.vim index 97483b45..029472ad 100644 --- a/sources_non_forked/ale/autoload/ale.vim +++ b/sources_non_forked/ale/autoload/ale.vim @@ -157,7 +157,7 @@ function! ale#Queue(delay, ...) abort endif endfunction -let s:current_ale_version = [3, 1, 0] +let s:current_ale_version = [3, 2, 0] " A function used to check for ALE features in files outside of the project. function! ale#Has(feature) abort diff --git a/sources_non_forked/ale/autoload/ale/code_action.vim b/sources_non_forked/ale/autoload/ale/code_action.vim index 917190be..60106a24 100644 --- a/sources_non_forked/ale/autoload/ale/code_action.vim +++ b/sources_non_forked/ale/autoload/ale/code_action.vim @@ -16,13 +16,12 @@ endfunction function! ale#code_action#HandleCodeAction(code_action, options) abort let l:current_buffer = bufnr('') let l:changes = a:code_action.changes - let l:should_save = get(a:options, 'should_save') for l:file_code_edit in l:changes call ale#code_action#ApplyChanges( \ l:file_code_edit.fileName, \ l:file_code_edit.textChanges, - \ l:should_save, + \ a:options, \) endfor endfunction @@ -63,29 +62,29 @@ function! s:ChangeCmp(left, right) abort return 0 endfunction -function! ale#code_action#ApplyChanges(filename, changes, should_save) abort - let l:current_buffer = bufnr('') +function! ale#code_action#ApplyChanges(filename, changes, options) abort + let l:should_save = get(a:options, 'should_save') + let l:conn_id = get(a:options, 'conn_id') + + let l:orig_buffer = bufnr('') + " The buffer is used to determine the fileformat, if available. let l:buffer = bufnr(a:filename) - let l:is_current_buffer = l:buffer > 0 && l:buffer == l:current_buffer - if l:buffer > 0 - let l:lines = getbufline(l:buffer, 1, '$') - - " Add empty line if there's trailing newline, like readfile() does. - if getbufvar(l:buffer, '&eol') - let l:lines += [''] - endif - else - let l:lines = readfile(a:filename, 'b') + if l:buffer != l:orig_buffer + call ale#util#Execute('silent edit ' . a:filename) + let l:buffer = bufnr('') endif - if l:is_current_buffer - let l:pos = getpos('.')[1:2] - else - let l:pos = [1, 1] + let l:lines = getbufline(l:buffer, 1, '$') + + " Add empty line if there's trailing newline, like readfile() does. + if getbufvar(l:buffer, '&eol') + let l:lines += [''] endif + let l:pos = getpos('.')[1:2] + " Changes have to be sorted so we apply them from bottom-to-top for l:code_edit in reverse(sort(copy(a:changes), function('s:ChangeCmp'))) let l:line = l:code_edit.start.line @@ -155,46 +154,25 @@ function! ale#code_action#ApplyChanges(filename, changes, should_save) abort endif endfor - if l:buffer > 0 - " Make sure ale#util#{Writefile,SetBufferContents} add trailing - " newline if and only if it should be added. - if l:lines[-1] is# '' && getbufvar(l:buffer, '&eol') - call remove(l:lines, -1) - else - call setbufvar(l:buffer, '&eol', 0) - endif - elseif exists('+fixeol') && &fixeol && l:lines[-1] is# '' - " Not in buffer, ale#util#Writefile can't check &eol and always adds - " newline if &fixeol: remove to prevent double trailing newline. + " Make sure to add a trailing newline if and only if it should be added. + if l:lines[-1] is# '' && getbufvar(l:buffer, '&eol') call remove(l:lines, -1) - endif - - if a:should_save || l:buffer < 0 - call ale#util#Writefile(l:buffer, l:lines, a:filename) else - call ale#util#SetBufferContents(l:buffer, l:lines) + call setbufvar(l:buffer, '&eol', 0) endif - if l:is_current_buffer - if a:should_save - call ale#util#Execute(':e!') - endif + call ale#util#SetBufferContents(l:buffer, l:lines) - call setpos('.', [0, l:pos[0], l:pos[1], 0]) + call ale#lsp#NotifyForChanges(l:conn_id, l:buffer) + + if l:should_save + call ale#util#Execute('silent w!') endif - if a:should_save && l:buffer > 0 && !l:is_current_buffer - " Set up a one-time use event that will delete itself to reload the - " buffer next time it's entered to view the changes made to it. - execute 'augroup ALECodeActionReloadGroup' . l:buffer - autocmd! + call setpos('.', [0, l:pos[0], l:pos[1], 0]) - execute printf( - \ 'autocmd BufEnter ' - \ . ' call ale#code_action#ReloadBuffer()', - \ l:buffer - \) - augroup END + if l:orig_buffer != l:buffer && bufexists(l:orig_buffer) + call ale#util#Execute('silent buf ' . string(l:orig_buffer)) endif endfunction @@ -300,7 +278,7 @@ function! ale#code_action#BuildChangesList(changes_map) abort endfor call add(l:changes, { - \ 'fileName': ale#path#FromURI(l:file_name), + \ 'fileName': ale#util#ToResource(l:file_name), \ 'textChanges': l:text_changes, \}) endfor diff --git a/sources_non_forked/ale/autoload/ale/codefix.vim b/sources_non_forked/ale/autoload/ale/codefix.vim index 853ee4e8..34ce3e15 100644 --- a/sources_non_forked/ale/autoload/ale/codefix.vim +++ b/sources_non_forked/ale/autoload/ale/codefix.vim @@ -391,8 +391,8 @@ function! s:OnReady( \ 'character': l:nearest_error.col - 1, \ }, \ 'end': { - \ 'line': l:nearest_error.end_lnum - 1, - \ 'character': l:nearest_error.end_col, + \ 'line': get(l:nearest_error, 'end_lnum', 1) - 1, + \ 'character': get(l:nearest_error, 'end_col', 0) \ }, \ }, \ }, @@ -457,7 +457,7 @@ function! s:ExecuteGetCodeFix(linter, range, MenuCallback) abort let [l:end_line, l:end_column] = getpos("'>")[1:2] endif - let l:column = min([l:column, len(getline(l:line))]) + let l:column = max([min([l:column, len(getline(l:line))]), 1]) let l:end_column = min([l:end_column, len(getline(l:end_line))]) let l:Callback = function( diff --git a/sources_non_forked/ale/autoload/ale/completion.vim b/sources_non_forked/ale/autoload/ale/completion.vim index e139feaa..3d649732 100644 --- a/sources_non_forked/ale/autoload/ale/completion.vim +++ b/sources_non_forked/ale/autoload/ale/completion.vim @@ -16,7 +16,7 @@ onoremap (ale_show_completion_menu) let g:ale_completion_delay = get(g:, 'ale_completion_delay', 100) let g:ale_completion_excluded_words = get(g:, 'ale_completion_excluded_words', []) let g:ale_completion_max_suggestions = get(g:, 'ale_completion_max_suggestions', 50) -let g:ale_completion_autoimport = get(g:, 'ale_completion_autoimport', 0) +let g:ale_completion_autoimport = get(g:, 'ale_completion_autoimport', 1) let g:ale_completion_tsserver_remove_warnings = get(g:, 'ale_completion_tsserver_remove_warnings', 0) let s:timer_id = -1 @@ -133,11 +133,13 @@ let s:should_complete_map = { \ 'typescript': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|''$|"$', \ 'rust': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|::$', \ 'cpp': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|::$|-\>$', +\ 'c': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|-\>$', \} " Regular expressions for finding the start column to replace with completion. let s:omni_start_map = { \ '': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$', +\ 'racket': '\k\+', \} " A map of exact characters for triggering LSP completions. Do not forget to @@ -147,6 +149,7 @@ let s:trigger_character_map = { \ 'typescript': ['.', '''', '"'], \ 'rust': ['.', '::'], \ 'cpp': ['.', '::', '->'], +\ 'c': ['.', '->'], \} function! s:GetFiletypeValue(map, filetype) abort @@ -581,7 +584,7 @@ function! ale#completion#ParseLSPCompletions(response) abort continue endif - if get(l:item, 'insertTextFormat') is s:LSP_INSERT_TEXT_FORMAT_PLAIN + if get(l:item, 'insertTextFormat', s:LSP_INSERT_TEXT_FORMAT_PLAIN) is s:LSP_INSERT_TEXT_FORMAT_PLAIN \&& type(get(l:item, 'textEdit')) is v:t_dict let l:text = l:item.textEdit.newText elseif type(get(l:item, 'insertText')) is v:t_string @@ -776,7 +779,8 @@ function! s:OnReady(linter, lsp_details) abort if a:linter.lsp is# 'tsserver' if get(g:, 'ale_completion_tsserver_autoimport') is 1 - execute 'echom `g:ale_completion_tsserver_autoimport` is deprecated. Use `g:ale_completion_autoimport` instead.''' + " no-custom-checks + echom '`g:ale_completion_tsserver_autoimport` is deprecated. Use `g:ale_completion_autoimport` instead.' endif let l:message = ale#lsp#tsserver_message#Completions( @@ -911,7 +915,8 @@ function! ale#completion#Import() abort endif let [l:line, l:column] = getpos('.')[1:2] - let l:column = searchpos('\V' . escape(l:word, '/\'), 'bn', l:line)[1] + let l:column = searchpos('\V' . escape(l:word, '/\'), 'bnc', l:line)[1] + let l:column = l:column + len(l:word) - 1 if l:column isnot 0 let l:started = ale#completion#GetCompletions('ale-import', { diff --git a/sources_non_forked/ale/autoload/ale/cursor.vim b/sources_non_forked/ale/autoload/ale/cursor.vim index e8478e93..c83bbcb6 100644 --- a/sources_non_forked/ale/autoload/ale/cursor.vim +++ b/sources_non_forked/ale/autoload/ale/cursor.vim @@ -10,12 +10,21 @@ let g:ale_echo_msg_format = get(g:, 'ale_echo_msg_format', '%code: %%s') let s:cursor_timer = -1 +" A wrapper for echon so we can test messages we echo in Vader tests. +function! ale#cursor#Echom(message) abort + " no-custom-checks + exec "norm! :echom a:message\n" +endfunction + function! ale#cursor#TruncatedEcho(original_message) abort let l:message = a:original_message " Change tabs to spaces. let l:message = substitute(l:message, "\t", ' ', 'g') " Remove any newlines in the message. let l:message = substitute(l:message, "\n", '', 'g') + " Convert indentation groups into single spaces for better legibility when + " put on a single line + let l:message = substitute(l:message, ' \+', ' ', 'g') " We need to remember the setting for shortmess and reset it again. let l:shortmess_options = &l:shortmess @@ -27,7 +36,7 @@ function! ale#cursor#TruncatedEcho(original_message) abort silent! setlocal shortmess+=T try - exec "norm! :echomsg l:message\n" + call ale#cursor#Echom(l:message) catch /^Vim\%((\a\+)\)\=:E523/ " Fallback into manual truncate (#1987) let l:winwidth = winwidth(0) @@ -87,7 +96,9 @@ function! ale#cursor#EchoCursorWarning(...) abort elseif get(l:info, 'echoed') " We'll only clear the echoed message when moving off errors once, " so we don't continually clear the echo line. - execute 'echo' + " + " no-custom-checks + echo let l:info.echoed = 0 endif endif @@ -150,7 +161,8 @@ function! s:ShowCursorDetailForItem(loc, options) abort " Clear the echo message if we manually displayed details. if !l:stay_here - execute 'echo' + " no-custom-checks + echo endif endif endfunction diff --git a/sources_non_forked/ale/autoload/ale/debugging.vim b/sources_non_forked/ale/autoload/ale/debugging.vim index efd52776..31f3078c 100644 --- a/sources_non_forked/ale/autoload/ale/debugging.vim +++ b/sources_non_forked/ale/autoload/ale/debugging.vim @@ -62,7 +62,8 @@ let s:global_variable_list = [ \] function! s:Echo(message) abort - execute 'echo a:message' + " no-custom-checks + echo a:message endfunction function! s:GetLinterVariables(filetype, exclude_linter_names) abort diff --git a/sources_non_forked/ale/autoload/ale/definition.vim b/sources_non_forked/ale/autoload/ale/definition.vim index 9574017b..fd6cd2e1 100644 --- a/sources_non_forked/ale/autoload/ale/definition.vim +++ b/sources_non_forked/ale/autoload/ale/definition.vim @@ -68,18 +68,27 @@ function! ale#definition#HandleLSPResponse(conn_id, response) abort for l:item in l:result if has_key(l:item, 'targetUri') " LocationLink items use targetUri - let l:filename = ale#path#FromURI(l:item.targetUri) + let l:uri = l:item.targetUri let l:line = l:item.targetRange.start.line + 1 let l:column = l:item.targetRange.start.character + 1 else " LocationLink items use uri - let l:filename = ale#path#FromURI(l:item.uri) + let l:uri = l:item.uri let l:line = l:item.range.start.line + 1 let l:column = l:item.range.start.character + 1 endif call ale#definition#UpdateTagStack() - call ale#util#Open(l:filename, l:line, l:column, l:options) + + let l:uri_handler = ale#uri#GetURIHandler(l:uri) + + if l:uri_handler is# v:null + let l:filename = ale#path#FromFileURI(l:uri) + call ale#util#Open(l:filename, l:line, l:column, l:options) + else + call l:uri_handler.OpenURILink(l:uri, l:line, l:column, l:options, a:conn_id) + endif + break endfor endif @@ -112,6 +121,12 @@ function! s:OnReady(line, column, options, capability, linter, lsp_details) abor \ a:line, \ a:column \) + elseif a:capability is# 'implementation' + let l:message = ale#lsp#tsserver_message#Implementation( + \ l:buffer, + \ a:line, + \ a:column + \) endif else " Send a message saying the buffer has changed first, or the @@ -125,6 +140,8 @@ function! s:OnReady(line, column, options, capability, linter, lsp_details) abor let l:message = ale#lsp#message#Definition(l:buffer, a:line, a:column) elseif a:capability is# 'typeDefinition' let l:message = ale#lsp#message#TypeDefinition(l:buffer, a:line, a:column) + elseif a:capability is# 'implementation' + let l:message = ale#lsp#message#Implementation(l:buffer, a:line, a:column) else " XXX: log here? return @@ -166,6 +183,14 @@ function! ale#definition#GoToType(options) abort endfor endfunction +function! ale#definition#GoToImpl(options) abort + for l:linter in ale#linter#Get(&filetype) + if !empty(l:linter.lsp) + call s:GoToLSPDefinition(l:linter, a:options, 'implementation') + endif + endfor +endfunction + function! ale#definition#GoToCommandHandler(command, ...) abort let l:options = {} @@ -191,6 +216,8 @@ function! ale#definition#GoToCommandHandler(command, ...) abort if a:command is# 'type' call ale#definition#GoToType(l:options) + elseif a:command is# 'implementation' + call ale#definition#GoToImpl(l:options) else call ale#definition#GoTo(l:options) endif diff --git a/sources_non_forked/ale/autoload/ale/engine.vim b/sources_non_forked/ale/autoload/ale/engine.vim index 5b9b1fca..00789a2d 100644 --- a/sources_non_forked/ale/autoload/ale/engine.vim +++ b/sources_non_forked/ale/autoload/ale/engine.vim @@ -347,6 +347,12 @@ function! ale#engine#FixLocList(buffer, linter_name, from_other_source, loclist) if has_key(l:old_item, 'end_lnum') let l:item.end_lnum = str2nr(l:old_item.end_lnum) + + " When the error ends after the end of the file, put it at the + " end. This is only done for the current buffer. + if l:item.bufnr == a:buffer && l:item.end_lnum > l:last_line_number + let l:item.end_lnum = l:last_line_number + endif endif if has_key(l:old_item, 'sub_type') diff --git a/sources_non_forked/ale/autoload/ale/events.vim b/sources_non_forked/ale/autoload/ale/events.vim index 3568c117..b8350c79 100644 --- a/sources_non_forked/ale/autoload/ale/events.vim +++ b/sources_non_forked/ale/autoload/ale/events.vim @@ -156,4 +156,10 @@ function! ale#events#Init() abort endif endif augroup END + + augroup AleURISchemes + autocmd! + + autocmd BufNewFile,BufReadPre jdt://** call ale#uri#jdt#ReadJDTLink(expand('')) + augroup END endfunction diff --git a/sources_non_forked/ale/autoload/ale/fix.vim b/sources_non_forked/ale/autoload/ale/fix.vim index 8ebba9fe..d9820847 100644 --- a/sources_non_forked/ale/autoload/ale/fix.vim +++ b/sources_non_forked/ale/autoload/ale/fix.vim @@ -77,7 +77,8 @@ function! ale#fix#ApplyFixes(buffer, output) abort call remove(g:ale_fix_buffer_data, a:buffer) if !l:data.ignore_file_changed_errors - execute 'echoerr ''The file was changed before fixing finished''' + " no-custom-checks + echoerr 'The file was changed before fixing finished' endif return @@ -358,7 +359,8 @@ function! ale#fix#Fix(buffer, fixing_flag, ...) abort \ 'There is no fixer named `%s`. Check :ALEFixSuggest', \ l:function_name, \) - execute 'echom l:echo_message' + " no-custom-checks + echom l:echo_message endif return 0 @@ -366,7 +368,8 @@ function! ale#fix#Fix(buffer, fixing_flag, ...) abort if empty(l:callback_list) if a:fixing_flag is# '' - execute 'echom ''No fixers have been defined. Try :ALEFixSuggest''' + " no-custom-checks + echom 'No fixers have been defined. Try :ALEFixSuggest' endif return 0 diff --git a/sources_non_forked/ale/autoload/ale/fix/registry.vim b/sources_non_forked/ale/autoload/ale/fix/registry.vim index c6764daf..85fef81d 100644 --- a/sources_non_forked/ale/autoload/ale/fix/registry.vim +++ b/sources_non_forked/ale/autoload/ale/fix/registry.vim @@ -37,6 +37,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['python'], \ 'description': 'Fix PEP8 issues with black.', \ }, +\ 'buf-format': { +\ 'function': 'ale#fixers#buf_format#Fix', +\ 'suggested_filetypes': ['proto'], +\ 'description': 'Fix .proto files with buf format.', +\ }, \ 'buildifier': { \ 'function': 'ale#fixers#buildifier#Fix', \ 'suggested_filetypes': ['bzl'], @@ -73,6 +78,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['dhall'], \ 'description': 'Standard code formatter for the Dhall language and removing dead code', \ }, +\ 'dune': { +\ 'function': 'ale#fixers#dune#Fix', +\ 'suggested_filetypes': ['dune'], +\ 'description': 'Fix dune files with dune format', +\ }, \ 'fecs': { \ 'function': 'ale#fixers#fecs#Fix', \ 'suggested_filetypes': ['javascript', 'css', 'html'], @@ -131,6 +141,11 @@ let s:default_registry = { \ 'description': 'Apply prettier-eslint to a file.', \ 'aliases': ['prettier-eslint'], \ }, +\ 'pyflyby': { +\ 'function': 'ale#fixers#pyflyby#Fix', +\ 'suggested_filetypes': ['python'], +\ 'description': 'Tidy Python imports with pyflyby.', +\ }, \ 'importjs': { \ 'function': 'ale#fixers#importjs#Fix', \ 'suggested_filetypes': ['javascript'], @@ -191,6 +206,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['ruby'], \ 'description': 'Fix ruby files with standardrb --fix', \ }, +\ 'statix': { +\ 'function': 'ale#fixers#statix#Fix', +\ 'suggested_filetypes': ['nix'], +\ 'description': 'Fix common Nix antipatterns with statix fix', +\ }, \ 'stylelint': { \ 'function': 'ale#fixers#stylelint#Fix', \ 'suggested_filetypes': ['css', 'sass', 'scss', 'sugarss', 'stylus'], @@ -216,6 +236,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['php'], \ 'description': 'Fix PHP files with php-cs-fixer.', \ }, +\ 'pint': { +\ 'function': 'ale#fixers#pint#Fix', +\ 'suggested_filetypes': ['php'], +\ 'description': 'Fix PHP files with Laravel Pint.', +\ }, \ 'astyle': { \ 'function': 'ale#fixers#astyle#Fix', \ 'suggested_filetypes': ['c', 'cpp'], @@ -246,6 +271,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['go'], \ 'description': 'Fix Go files with go fmt.', \ }, +\ 'gofumpt': { +\ 'function': 'ale#fixers#gofumpt#Fix', +\ 'suggested_filetypes': ['go'], +\ 'description': 'Fix Go files with gofumpt, a stricter go fmt.', +\ }, \ 'goimports': { \ 'function': 'ale#fixers#goimports#Fix', \ 'suggested_filetypes': ['go'], @@ -421,6 +451,16 @@ let s:default_registry = { \ 'suggested_filetypes': ['hcl', 'terraform'], \ 'description': 'Fix tf and hcl files with terraform fmt.', \ }, +\ 'packer': { +\ 'function': 'ale#fixers#packer#Fix', +\ 'suggested_filetypes': ['hcl', 'packer'], +\ 'description': 'Fix Packer HCL files with packer fmt.', +\ }, +\ 'crystal': { +\ 'function': 'ale#fixers#crystal#Fix', +\ 'suggested_filetypes': ['cr'], +\ 'description': 'Fix cr (crystal).', +\ }, \ 'ktlint': { \ 'function': 'ale#fixers#ktlint#Fix', \ 'suggested_filetypes': ['kt', 'kotlin'], @@ -481,6 +521,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['lua'], \ 'description': 'Fix Lua files with luafmt.', \ }, +\ 'dprint': { +\ 'function': 'ale#fixers#dprint#Fix', +\ 'suggested_filetypes': ['javascript', 'typescript', 'json', 'markdown'], +\ 'description': 'Pluggable and configurable code formatting platform', +\ }, \ 'stylua': { \ 'function': 'ale#fixers#stylua#Fix', \ 'suggested_filetypes': ['lua'], @@ -501,10 +546,20 @@ let s:default_registry = { \ 'suggested_filetypes': ['pascal'], \ 'description': 'Fix Pascal files with ptop.', \ }, +\ 'opafmt': { +\ 'function': 'ale#fixers#opafmt#Fix', +\ 'suggested_filetypes': ['rego'], +\ 'description': 'Fix rego files with opa fmt.', +\ }, \ 'vfmt': { \ 'function': 'ale#fixers#vfmt#Fix', \ 'suggested_filetypes': ['v'], \ 'description': 'A formatter for V source code.', +\ }, +\ 'zigfmt': { +\ 'function': 'ale#fixers#zigfmt#Fix', +\ 'suggested_filetypes': ['zig'], +\ 'description': 'Official formatter for Zig', \ } \} diff --git a/sources_non_forked/ale/autoload/ale/fixers/shfmt.vim b/sources_non_forked/ale/autoload/ale/fixers/shfmt.vim index 06e8da57..0eefc985 100644 --- a/sources_non_forked/ale/autoload/ale/fixers/shfmt.vim +++ b/sources_non_forked/ale/autoload/ale/fixers/shfmt.vim @@ -5,27 +5,13 @@ scriptencoding utf-8 call ale#Set('sh_shfmt_executable', 'shfmt') call ale#Set('sh_shfmt_options', '') -function! s:DefaultOption(buffer) abort - if getbufvar(a:buffer, '&expandtab') == 0 - " Tab is used by default - return '' - endif - - let l:tabsize = getbufvar(a:buffer, '&shiftwidth') - - if l:tabsize == 0 - let l:tabsize = getbufvar(a:buffer, '&tabstop') - endif - - return ' -i ' . l:tabsize -endfunction - function! ale#fixers#shfmt#Fix(buffer) abort let l:executable = ale#Var(a:buffer, 'sh_shfmt_executable') let l:options = ale#Var(a:buffer, 'sh_shfmt_options') return { \ 'command': ale#Escape(l:executable) - \ . (empty(l:options) ? s:DefaultOption(a:buffer) : ' ' . l:options) + \ . ' -filename=%s' + \ . (empty(l:options) ? '' : ' ' . l:options) \} endfunction diff --git a/sources_non_forked/ale/autoload/ale/fixers/uncrustify.vim b/sources_non_forked/ale/autoload/ale/fixers/uncrustify.vim index ffec18ef..0e8271ec 100644 --- a/sources_non_forked/ale/autoload/ale/fixers/uncrustify.vim +++ b/sources_non_forked/ale/autoload/ale/fixers/uncrustify.vim @@ -4,13 +4,30 @@ call ale#Set('c_uncrustify_executable', 'uncrustify') call ale#Set('c_uncrustify_options', '') +let s:languages = { +\ 'c': 'C', +\ 'cpp': 'CPP', +\ 'cs': 'CS', +\ 'objc': 'OC', +\ 'objcpp': 'OC+', +\ 'd': 'D', +\ 'java': 'JAVA', +\ 'vala': 'VALA', +\ 'p': 'PAWN', +\} + +function! ale#fixers#uncrustify#Language(buffer) abort + return get(s:languages, &filetype, 'C') +endfunction + function! ale#fixers#uncrustify#Fix(buffer) abort let l:executable = ale#Var(a:buffer, 'c_uncrustify_executable') let l:options = ale#Var(a:buffer, 'c_uncrustify_options') return { \ 'command': ale#Escape(l:executable) - \ . ' --no-backup' - \ . (empty(l:options) ? '' : ' ' . l:options) + \ . ' --no-backup ' + \ . '-l' . ale#Pad(ale#fixers#uncrustify#Language(a:buffer)) + \ . ale#Pad(l:options) \} endfunction diff --git a/sources_non_forked/ale/autoload/ale/floating_preview.vim b/sources_non_forked/ale/autoload/ale/floating_preview.vim index f0bc8f80..1063a2db 100644 --- a/sources_non_forked/ale/autoload/ale/floating_preview.vim +++ b/sources_non_forked/ale/autoload/ale/floating_preview.vim @@ -7,7 +7,8 @@ function! ale#floating_preview#Show(lines, ...) abort if !exists('*nvim_open_win') && !has('popupwin') - execute 'echom ''Floating windows not supported in this vim instance.''' + " no-custom-checks + echom 'Floating windows not supported in this vim instance.' return endif @@ -105,18 +106,20 @@ function! s:NvimPrepareWindowContent(lines) abort let l:width += 2 let l:height += 2 - let l:hor = g:ale_floating_window_border[0] - let l:top = g:ale_floating_window_border[1] - let l:top_left = g:ale_floating_window_border[2] - let l:top_right = g:ale_floating_window_border[3] - let l:bottom_right = g:ale_floating_window_border[4] - let l:bottom_left = g:ale_floating_window_border[5] + let l:left = get(g:ale_floating_window_border, 0, '|') + let l:top = get(g:ale_floating_window_border, 1, '-') + let l:top_left = get(g:ale_floating_window_border, 2, '+') + let l:top_right = get(g:ale_floating_window_border, 3, '+') + let l:bottom_right = get(g:ale_floating_window_border, 4, '+') + let l:bottom_left = get(g:ale_floating_window_border, 5, '+') + let l:right = get(g:ale_floating_window_border, 6, l:left) + let l:bottom = get(g:ale_floating_window_border, 7, l:top) let l:lines = [l:top_left . repeat(l:top, l:width - 2) . l:top_right] for l:line in a:lines let l:line_width = strchars(l:line) - let l:lines = add(l:lines, l:hor . l:line . repeat(' ', l:width - l:line_width - 2). l:hor) + let l:lines = add(l:lines, l:left . l:line . repeat(' ', l:width - l:line_width - 2). l:right) endfor " Truncate the lines @@ -124,7 +127,7 @@ function! s:NvimPrepareWindowContent(lines) abort let l:lines = l:lines[0:l:max_height] endif - let l:lines = add(l:lines, l:bottom_left . repeat(l:top, l:width - 2) . l:bottom_right) + let l:lines = add(l:lines, l:bottom_left . repeat(l:bottom, l:width - 2) . l:bottom_right) return [l:lines, l:width, l:height] endfunction @@ -157,14 +160,14 @@ function! s:VimCreate(options) abort \ 'padding': [0, 1, 0, 1], \ 'border': [], \ 'borderchars': empty(g:ale_floating_window_border) ? [' '] : [ - \ g:ale_floating_window_border[1], - \ g:ale_floating_window_border[0], - \ g:ale_floating_window_border[1], - \ g:ale_floating_window_border[0], - \ g:ale_floating_window_border[2], - \ g:ale_floating_window_border[3], - \ g:ale_floating_window_border[4], - \ g:ale_floating_window_border[5], + \ get(g:ale_floating_window_border, 1, '-'), + \ get(g:ale_floating_window_border, 6, '|'), + \ get(g:ale_floating_window_border, 7, '-'), + \ get(g:ale_floating_window_border, 0, '|'), + \ get(g:ale_floating_window_border, 2, '+'), + \ get(g:ale_floating_window_border, 3, '+'), + \ get(g:ale_floating_window_border, 4, '+'), + \ get(g:ale_floating_window_border, 5, '+'), \ ], \ 'moved': 'any', \ }) diff --git a/sources_non_forked/ale/autoload/ale/handlers/alex.vim b/sources_non_forked/ale/autoload/ale/handlers/alex.vim index 6ef4867f..1a92bd14 100644 --- a/sources_non_forked/ale/autoload/ale/handlers/alex.vim +++ b/sources_non_forked/ale/autoload/ale/handlers/alex.vim @@ -11,8 +11,9 @@ endfunction function! ale#handlers#alex#CreateCommandCallback(flags) abort return {b -> ale#node#Executable(b, ale#handlers#alex#GetExecutable(b)) - \ . ' %s ' - \ . a:flags} + \ . ' --stdin ' + \ . a:flags + \} endfunction function! ale#handlers#alex#Handle(buffer, lines) abort @@ -38,6 +39,7 @@ endfunction " Define a linter for a specific filetype. Accept flags to adapt to the filetype. " no flags treat input as markdown " --html treat input as HTML +" --mdx treat input as MDX " --text treat input as plaintext function! ale#handlers#alex#DefineLinter(filetype, flags) abort call ale#Set('alex_executable', 'alex') @@ -49,6 +51,5 @@ function! ale#handlers#alex#DefineLinter(filetype, flags) abort \ 'command': ale#handlers#alex#CreateCommandCallback(a:flags), \ 'output_stream': 'stderr', \ 'callback': 'ale#handlers#alex#Handle', - \ 'lint_file': 1, \}) endfunction diff --git a/sources_non_forked/ale/autoload/ale/handlers/cppcheck.vim b/sources_non_forked/ale/autoload/ale/handlers/cppcheck.vim index a07d0aed..150bb007 100644 --- a/sources_non_forked/ale/autoload/ale/handlers/cppcheck.vim +++ b/sources_non_forked/ale/autoload/ale/handlers/cppcheck.vim @@ -19,6 +19,18 @@ function! ale#handlers#cppcheck#GetBufferPathIncludeOptions(buffer) abort endfunction function! ale#handlers#cppcheck#GetCompileCommandsOptions(buffer) abort + " The compile_commands.json doesn't apply to headers and cppheck will + " bail out if it cannot find a file matching the filter, below. Skip out + " now, for headers. Also, suppress FPs; cppcheck is not meant to + " process lone header files. + let b:buffer_name = bufname(a:buffer) + let b:file_extension = fnamemodify(b:buffer_name, ':e') + + if b:file_extension is# 'h' || b:file_extension is# 'hpp' + return ale#handlers#cppcheck#GetBufferPathIncludeOptions(a:buffer) + \ . ' --suppress=unusedStructMember' + endif + " If the current buffer is modified, using compile_commands.json does no " good, so include the file's directory instead. It's not quite as good as " using --project, but is at least equivalent to running cppcheck on this @@ -35,8 +47,10 @@ function! ale#handlers#cppcheck#GetCompileCommandsOptions(buffer) abort " then use the file to set up import paths, etc. let [l:dir, l:json_path] = ale#c#FindCompileCommands(a:buffer) + " By default, cppcheck processes every config in compile_commands.json. + " Use --file-filter to limit to just the buffer file. return !empty(l:json_path) - \ ? '--project=' . ale#Escape(l:json_path[len(l:dir) + 1: ]) + \ ? '--project=' . ale#Escape(l:json_path[len(l:dir) + 1: ]) . ' --file-filter=' . ale#Escape(bufname(a:buffer)) \ : '' endfunction @@ -50,7 +64,12 @@ function! ale#handlers#cppcheck#HandleCppCheckFormat(buffer, lines) abort "test.cpp:974:{column}: error:{inconclusive:inconclusive} Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\ " n[3]=3; " ^ - let l:pattern = '\v(\f+):(\d+):(\d+|\{column\}): (\w+):(\{inconclusive:inconclusive\})? ?(.*) \[(\w+)\]\' + " + "" OR if using the misra addon: + "test.c:1:16: style: misra violation (use --rule-texts= to get proper output) [misra-c2012-2.7]\' + "void test( int parm ) {} + " ^ + let l:pattern = '\v(\f+):(\d+):(\d+|\{column\}): (\w+):(\{inconclusive:inconclusive\})? ?(.*) \[(%(\w[-.]?)+)\]\' let l:output = [] for l:match in ale#util#GetMatches(a:lines, l:pattern) diff --git a/sources_non_forked/ale/autoload/ale/handlers/haskell.vim b/sources_non_forked/ale/autoload/ale/handlers/haskell.vim index 3613b1bb..70a3a7ea 100644 --- a/sources_non_forked/ale/autoload/ale/handlers/haskell.vim +++ b/sources_non_forked/ale/autoload/ale/handlers/haskell.vim @@ -19,6 +19,16 @@ let s:temp_regex_prefix = \ . substitute(s:temp_dir, '\\', '\\\\', 'g') \ . '\.\{-}' +function! s:PanicOutput(lines) abort + return [{ + \ 'lnum': 1, + \ 'col': 1, + \ 'text': 'ghc panic!', + \ 'type': 'E', + \ 'detail' : join(a:lines, "\n"), + \}] +endfunction + function! ale#handlers#haskell#HandleGHCFormat(buffer, lines) abort " Look for lines like the following. " @@ -34,6 +44,14 @@ function! ale#handlers#haskell#HandleGHCFormat(buffer, lines) abort let l:corrected_lines = [] + " If ghc panic error, put the whole message in details and exit. + let l:panic_position = match(a:lines,'ghc: panic!') + let l:panic_end = match(a:lines,'Please report this as a GHC bug:') + + if l:panic_position >= 0 + return s:PanicOutput(a:lines[l:panic_position : l:panic_end]) + endif + " Group the lines into smaller lists. for l:line in a:lines if len(matchlist(l:line, l:pattern)) > 0 diff --git a/sources_non_forked/ale/autoload/ale/handlers/sml.vim b/sources_non_forked/ale/autoload/ale/handlers/sml.vim index f5365dd6..403b25fa 100644 --- a/sources_non_forked/ale/autoload/ale/handlers/sml.vim +++ b/sources_non_forked/ale/autoload/ale/handlers/sml.vim @@ -63,26 +63,35 @@ function! ale#handlers#sml#Handle(buffer, lines) abort let l:match2 = matchlist(l:line, l:pattern2) if len(l:match2) != 0 - call add(l:out, { - \ 'filename': l:match2[1], + if l:match2[1] =~# 'stdIn$' + let l:loc = {'bufnr': a:buffer} + else + let l:loc = {'filename': l:match2[1]} + endif + + call add(l:out, extend(l:loc, { \ 'lnum': l:match2[2] + 0, \ 'col' : l:match2[3] - 1, \ 'text': l:match2[4], \ 'type': l:match2[4] =~# '^Warning' ? 'W' : 'E', - \}) - + \})) continue endif let l:match = matchlist(l:line, l:pattern) if len(l:match) != 0 - call add(l:out, { - \ 'filename': l:match[1], + if l:match[1] =~# 'stdIn$' + let l:loc = {'bufnr': a:buffer} + else + let l:loc = {'filename': l:match[1]} + endif + + call add(l:out, extend(l:loc, { \ 'lnum': l:match[2] + 0, \ 'text': l:match[3] . ': ' . l:match[4], \ 'type': l:match[3] is# 'error' ? 'E' : 'W', - \}) + \})) continue endif endfor diff --git a/sources_non_forked/ale/autoload/ale/highlight.vim b/sources_non_forked/ale/autoload/ale/highlight.vim index 473ad354..c284f5ca 100644 --- a/sources_non_forked/ale/autoload/ale/highlight.vim +++ b/sources_non_forked/ale/autoload/ale/highlight.vim @@ -22,6 +22,26 @@ if !hlexists('ALEInfo') highlight link ALEInfo ALEWarning endif +if !hlexists('ALEVirtualTextError') + highlight link ALEVirtualTextError ALEError +endif + +if !hlexists('ALEVirtualTextStyleError') + highlight link ALEVirtualTextStyleError ALEVirtualTextError +endif + +if !hlexists('ALEVirtualTextWarning') + highlight link ALEVirtualTextWarning ALEWarning +endif + +if !hlexists('ALEVirtualTextStyleWarning') + highlight link ALEVirtualTextStyleWarning ALEVirtualTextWarning +endif + +if !hlexists('ALEVirtualTextInfo') + highlight link ALEVirtualTextInfo ALEVirtualTextWarning +endif + " The maximum number of items for the second argument of matchaddpos() let s:MAX_POS_VALUES = 8 let s:MAX_COL_SIZE = 1073741824 " pow(2, 30) diff --git a/sources_non_forked/ale/autoload/ale/hover.vim b/sources_non_forked/ale/autoload/ale/hover.vim index 4513c6ad..5b14df8c 100644 --- a/sources_non_forked/ale/autoload/ale/hover.vim +++ b/sources_non_forked/ale/autoload/ale/hover.vim @@ -46,7 +46,7 @@ function! ale#hover#HandleTSServerResponse(conn_id, response) abort call balloon_show(a:response.body.displayString) elseif get(l:options, 'truncated_echo', 0) if !empty(a:response.body.displayString) - call ale#cursor#TruncatedEcho(split(a:response.body.displayString, "\n")[0]) + call ale#cursor#TruncatedEcho(a:response.body.displayString) endif elseif g:ale_hover_to_floating_preview || g:ale_floating_preview call ale#floating_preview#Show(split(a:response.body.displayString, "\n"), { @@ -231,7 +231,11 @@ function! ale#hover#HandleLSPResponse(conn_id, response) abort \&& (l:set_balloons is 1 || l:set_balloons is# 'hover') call balloon_show(join(l:lines, "\n")) elseif get(l:options, 'truncated_echo', 0) - call ale#cursor#TruncatedEcho(l:lines[0]) + if type(l:lines[0]) is# v:t_list + call ale#cursor#TruncatedEcho(join(l:lines[0], '\n')) + else + call ale#cursor#TruncatedEcho(l:lines[0]) + endif elseif g:ale_hover_to_floating_preview || g:ale_floating_preview call ale#floating_preview#Show(l:lines, { \ 'filetype': 'ale-preview.message', diff --git a/sources_non_forked/ale/autoload/ale/job.vim b/sources_non_forked/ale/autoload/ale/job.vim index 14b3e484..0fc43a8c 100644 --- a/sources_non_forked/ale/autoload/ale/job.vim +++ b/sources_non_forked/ale/autoload/ale/job.vim @@ -187,10 +187,16 @@ function! ale#job#PrepareCommand(buffer, command) abort \ : a:command " If a custom shell is specified, use that. - if exists('g:ale_shell') - let l:shell_arguments = get(g:, 'ale_shell_arguments', &shellcmdflag) + if exists('b:ale_shell') + let l:ale_shell = b:ale_shell + elseif exists('g:ale_shell') + let l:ale_shell = g:ale_shell + endif - return split(g:ale_shell) + split(l:shell_arguments) + [l:command] + if exists('l:ale_shell') + let l:shell_arguments = get(b:, 'ale_shell_arguments', get(g:, 'ale_shell_arguments', &shellcmdflag)) + + return split(l:ale_shell) + split(l:shell_arguments) + [l:command] endif if has('win32') @@ -244,10 +250,16 @@ function! ale#job#Start(command, options) abort if has_key(a:options, 'out_cb') let l:job_options.out_cb = function('s:VimOutputCallback') + else + " prevent buffering of output and excessive polling in case close_cb is set + let l:job_options.out_cb = {->0} endif if has_key(a:options, 'err_cb') let l:job_options.err_cb = function('s:VimErrorCallback') + else + " prevent buffering of output and excessive polling in case close_cb is set + let l:job_options.err_cb = {->0} endif if has_key(a:options, 'exit_cb') diff --git a/sources_non_forked/ale/autoload/ale/linter.vim b/sources_non_forked/ale/autoload/ale/linter.vim index cbc79064..99faa357 100644 --- a/sources_non_forked/ale/autoload/ale/linter.vim +++ b/sources_non_forked/ale/autoload/ale/linter.vim @@ -19,6 +19,7 @@ let s:default_ale_linter_aliases = { \ 'rmd': 'r', \ 'systemverilog': 'verilog', \ 'typescriptreact': ['typescript', 'tsx'], +\ 'vader': ['vim', 'vader'], \ 'verilog_systemverilog': ['verilog_systemverilog', 'verilog'], \ 'vimwiki': 'markdown', \ 'vue': ['vue', 'javascript'], @@ -45,15 +46,20 @@ let s:default_ale_linters = { \ 'hack': ['hack'], \ 'help': [], \ 'inko': ['inko'], +\ 'json': ['jsonlint', 'spectral', 'vscodejson'], +\ 'json5': [], +\ 'jsonc': [], \ 'perl': ['perlcritic'], \ 'perl6': [], \ 'python': ['flake8', 'mypy', 'pylint', 'pyright'], \ 'rust': ['cargo', 'rls'], \ 'spec': [], \ 'text': [], +\ 'vader': ['vimls'], \ 'vue': ['eslint', 'vls'], \ 'zsh': ['shell'], \ 'v': ['v'], +\ 'yaml': ['spectral', 'yaml-language-server', 'yamllint'], \} " Testing/debugging helper to unload all linters. diff --git a/sources_non_forked/ale/autoload/ale/list.vim b/sources_non_forked/ale/autoload/ale/list.vim index 089aa2c0..f10d0910 100644 --- a/sources_non_forked/ale/autoload/ale/list.vim +++ b/sources_non_forked/ale/autoload/ale/list.vim @@ -36,12 +36,22 @@ function! ale#list#IsQuickfixOpen() abort endfunction " Check if we should open the list, based on the save event being fired, and -" that setting being on, or the setting just being set to `1`. -function! s:ShouldOpen(buffer) abort +" that setting being on, or that the error count is at least as high as the +" setting when set to an integer value. +function! s:ShouldOpen(buffer, loclist_len) abort let l:val = ale#Var(a:buffer, 'open_list') let l:saved = getbufvar(a:buffer, 'ale_save_event_fired', 0) - return l:val is 1 || (l:val is# 'on_save' && l:saved) + return l:val > 0 ? a:loclist_len >= l:val : l:val is# 'on_save' && l:saved +endfunction + +" Check if we should close the list, based on the save event being fired, and +" that setting being on, or the setting just being set to an integer value. +function! s:ShouldClose(buffer) abort + let l:val = ale#Var(a:buffer, 'open_list') + let l:saved = getbufvar(a:buffer, 'ale_save_event_fired', 0) + + return !((l:val >= 1) || (l:val is# 'on_save' && l:saved)) endfunction function! s:Deduplicate(list) abort @@ -122,9 +132,9 @@ function! s:SetListsImpl(timer_id, buffer, loclist) abort " Open a window to show the problems if we need to. " - " We'll check if the current buffer's List is not empty here, so the - " window will only be opened if the current buffer has problems. - if s:ShouldOpen(a:buffer) && !empty(a:loclist) + " ShouldOpen() checks if the current buffer has enough problems to be + " opened. + if s:ShouldOpen(a:buffer, len(a:loclist)) let l:winnr = winnr() let l:mode = mode() @@ -212,8 +222,25 @@ function! ale#list#SetLists(buffer, loclist) abort endif endfunction +function! ale#list#ForcePopulateErrorList(populate_quickfix) abort + let l:quickfix_bak = g:ale_set_quickfix + let g:ale_set_quickfix = a:populate_quickfix + let l:loclist_bak = g:ale_set_loclist + let g:ale_set_loclist = !a:populate_quickfix + let l:open_list_bak = g:ale_open_list + let g:ale_open_list = 1 + + let l:buffer = bufnr('') + let l:loclist = get(g:ale_buffer_info, l:buffer, {'loclist': []}).loclist + call s:SetListsImpl(-1, l:buffer, l:loclist) + + let g:ale_open_list = l:open_list_bak + let g:ale_set_loclist = l:loclist_bak + let g:ale_set_quickfix = l:quickfix_bak +endfunction + function! s:CloseWindowIfNeeded(buffer) abort - if ale#Var(a:buffer, 'keep_list_window_open') || !s:ShouldOpen(a:buffer) + if ale#Var(a:buffer, 'keep_list_window_open') || s:ShouldClose(a:buffer) return endif diff --git a/sources_non_forked/ale/autoload/ale/lsp.vim b/sources_non_forked/ale/autoload/ale/lsp.vim index 75d81525..daaed6fa 100644 --- a/sources_non_forked/ale/autoload/ale/lsp.vim +++ b/sources_non_forked/ale/autoload/ale/lsp.vim @@ -38,11 +38,13 @@ function! ale#lsp#Register(executable_or_address, project, init_options) abort \ 'capabilities': { \ 'hover': 0, \ 'rename': 0, + \ 'filerename': 0, \ 'references': 0, \ 'completion': 0, \ 'completion_trigger_characters': [], \ 'definition': 0, \ 'typeDefinition': 0, + \ 'implementation': 0, \ 'symbol_search': 0, \ 'code_actions': 0, \ 'did_save': 0, @@ -258,6 +260,14 @@ function! s:UpdateCapabilities(conn, capabilities) abort let a:conn.capabilities.typeDefinition = 1 endif + if get(a:capabilities, 'implementationProvider') is v:true + let a:conn.capabilities.implementation = 1 + endif + + if type(get(a:capabilities, 'implementationProvider')) is v:t_dict + let a:conn.capabilities.implementation = 1 + endif + if get(a:capabilities, 'workspaceSymbolProvider') is v:true let a:conn.capabilities.symbol_search = 1 endif @@ -378,8 +388,10 @@ function! ale#lsp#MarkConnectionAsTsserver(conn_id) abort let l:conn.capabilities.completion_trigger_characters = ['.'] let l:conn.capabilities.definition = 1 let l:conn.capabilities.typeDefinition = 1 + let l:conn.capabilities.implementation = 1 let l:conn.capabilities.symbol_search = 1 let l:conn.capabilities.rename = 1 + let l:conn.capabilities.filerename = 1 let l:conn.capabilities.code_actions = 1 endfunction @@ -436,11 +448,20 @@ function! s:SendInitMessage(conn) abort \ 'typeDefinition': { \ 'dynamicRegistration': v:false, \ }, + \ 'implementation': { + \ 'dynamicRegistration': v:false, + \ 'linkSupport': v:false, + \ }, \ 'publishDiagnostics': { \ 'relatedInformation': v:true, \ }, \ 'codeAction': { \ 'dynamicRegistration': v:false, + \ 'codeActionLiteralSupport': { + \ 'codeActionKind': { + \ 'valueSet': [] + \ } + \ } \ }, \ 'rename': { \ 'dynamicRegistration': v:false, @@ -465,6 +486,7 @@ function! ale#lsp#StartProgram(conn_id, executable, command) abort let l:options = { \ 'mode': 'raw', \ 'out_cb': {_, message -> ale#lsp#HandleMessage(a:conn_id, message)}, + \ 'exit_cb': { -> ale#lsp#Stop(a:conn_id) }, \} if has('win32') diff --git a/sources_non_forked/ale/autoload/ale/lsp/message.vim b/sources_non_forked/ale/autoload/ale/lsp/message.vim index b40c4407..c2238dec 100644 --- a/sources_non_forked/ale/autoload/ale/lsp/message.vim +++ b/sources_non_forked/ale/autoload/ale/lsp/message.vim @@ -35,7 +35,7 @@ function! ale#lsp#message#Initialize(root_path, options, capabilities) abort \ 'rootPath': a:root_path, \ 'capabilities': a:capabilities, \ 'initializationOptions': a:options, - \ 'rootUri': ale#path#ToURI(a:root_path), + \ 'rootUri': ale#util#ToURI(a:root_path), \}] endfunction @@ -56,7 +56,7 @@ function! ale#lsp#message#DidOpen(buffer, language_id) abort return [1, 'textDocument/didOpen', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ 'languageId': a:language_id, \ 'version': ale#lsp#message#GetNextVersionID(), \ 'text': join(l:lines, "\n") . "\n", @@ -70,21 +70,21 @@ function! ale#lsp#message#DidChange(buffer) abort " For changes, we simply send the full text of the document to the server. return [1, 'textDocument/didChange', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ 'version': ale#lsp#message#GetNextVersionID(), \ }, \ 'contentChanges': [{'text': join(l:lines, "\n") . "\n"}] \}] endfunction -function! ale#lsp#message#DidSave(buffer, includeText) abort +function! ale#lsp#message#DidSave(buffer, include_text) abort let l:response = [1, 'textDocument/didSave', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \}] - if a:includeText + if a:include_text let l:response[2].textDocument.version = ale#lsp#message#GetNextVersionID() let l:response[2].text = ale#util#GetBufferContents(a:buffer) endif @@ -95,7 +95,7 @@ endfunction function! ale#lsp#message#DidClose(buffer) abort return [1, 'textDocument/didClose', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \}] endfunction @@ -106,7 +106,7 @@ let s:COMPLETION_TRIGGER_CHARACTER = 2 function! ale#lsp#message#Completion(buffer, line, column, trigger_character) abort let l:message = [0, 'textDocument/completion', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'position': {'line': a:line - 1, 'character': a:column - 1}, \}] @@ -124,7 +124,7 @@ endfunction function! ale#lsp#message#Definition(buffer, line, column) abort return [0, 'textDocument/definition', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'position': {'line': a:line - 1, 'character': a:column - 1}, \}] @@ -133,7 +133,16 @@ endfunction function! ale#lsp#message#TypeDefinition(buffer, line, column) abort return [0, 'textDocument/typeDefinition', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), + \ }, + \ 'position': {'line': a:line - 1, 'character': a:column - 1}, + \}] +endfunction + +function! ale#lsp#message#Implementation(buffer, line, column) abort + return [0, 'textDocument/implementation', { + \ 'textDocument': { + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'position': {'line': a:line - 1, 'character': a:column - 1}, \}] @@ -142,7 +151,7 @@ endfunction function! ale#lsp#message#References(buffer, line, column) abort return [0, 'textDocument/references', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'position': {'line': a:line - 1, 'character': a:column - 1}, \ 'context': {'includeDeclaration': v:false}, @@ -158,7 +167,7 @@ endfunction function! ale#lsp#message#Hover(buffer, line, column) abort return [0, 'textDocument/hover', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'position': {'line': a:line - 1, 'character': a:column - 1}, \}] @@ -173,7 +182,7 @@ endfunction function! ale#lsp#message#Rename(buffer, line, column, new_name) abort return [0, 'textDocument/rename', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'position': {'line': a:line - 1, 'character': a:column - 1}, \ 'newName': a:new_name, @@ -183,7 +192,7 @@ endfunction function! ale#lsp#message#CodeAction(buffer, line, column, end_line, end_column, diagnostics) abort return [0, 'textDocument/codeAction', { \ 'textDocument': { - \ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')), + \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ }, \ 'range': { \ 'start': {'line': a:line - 1, 'character': a:column - 1}, diff --git a/sources_non_forked/ale/autoload/ale/lsp/response.vim b/sources_non_forked/ale/autoload/ale/lsp/response.vim index a4f80980..498ec508 100644 --- a/sources_non_forked/ale/autoload/ale/lsp/response.vim +++ b/sources_non_forked/ale/autoload/ale/lsp/response.vim @@ -59,7 +59,7 @@ function! ale#lsp#response#ReadDiagnostics(response) abort \ && l:diagnostic.relatedInformation isnot v:null let l:related = deepcopy(l:diagnostic.relatedInformation) call map(l:related, {key, val -> - \ ale#path#FromURI(val.location.uri) . + \ ale#util#ToResource(val.location.uri) . \ ':' . (val.location.range.start.line + 1) . \ ':' . (val.location.range.start.character + 1) . \ ":\n\t" . val.message diff --git a/sources_non_forked/ale/autoload/ale/lsp/tsserver_message.vim b/sources_non_forked/ale/autoload/ale/lsp/tsserver_message.vim index 00213a75..02e57899 100644 --- a/sources_non_forked/ale/autoload/ale/lsp/tsserver_message.vim +++ b/sources_non_forked/ale/autoload/ale/lsp/tsserver_message.vim @@ -72,6 +72,14 @@ function! ale#lsp#tsserver_message#TypeDefinition(buffer, line, column) abort \}] endfunction +function! ale#lsp#tsserver_message#Implementation(buffer, line, column) abort + return [0, 'ts@implementation', { + \ 'line': a:line, + \ 'offset': a:column, + \ 'file': expand('#' . a:buffer . ':p'), + \}] +endfunction + function! ale#lsp#tsserver_message#References(buffer, line, column) abort return [0, 'ts@references', { \ 'line': a:line, @@ -101,6 +109,14 @@ function! ale#lsp#tsserver_message#Rename( \}] endfunction +function! ale#lsp#tsserver_message#GetEditsForFileRename( +\ oldFilePath, newFilePath) abort + return [0, 'ts@getEditsForFileRename', { + \ 'oldFilePath': a:oldFilePath, + \ 'newFilePath': a:newFilePath, + \}] +endfunction + function! ale#lsp#tsserver_message#OrganizeImports(buffer) abort return [0, 'ts@organizeImports', { \ 'scope': { diff --git a/sources_non_forked/ale/autoload/ale/lsp_linter.vim b/sources_non_forked/ale/autoload/ale/lsp_linter.vim index 230b3141..39e3e322 100644 --- a/sources_non_forked/ale/autoload/ale/lsp_linter.vim +++ b/sources_non_forked/ale/autoload/ale/lsp_linter.vim @@ -11,6 +11,22 @@ endif " A Dictionary to track one-shot handlers for custom LSP requests let s:custom_handlers_map = get(s:, 'custom_handlers_map', {}) +" Clear LSP linter data for the linting engine. +function! ale#lsp_linter#ClearLSPData() abort + let s:lsp_linter_map = {} + let s:custom_handlers_map = {} +endfunction + +" Only for internal use. +function! ale#lsp_linter#GetLSPLinterMap() abort + return s:lsp_linter_map +endfunction + +" Just for tests. +function! ale#lsp_linter#SetLSPLinterMap(replacement_map) abort + let s:lsp_linter_map = a:replacement_map +endfunction + " Check if diagnostics for a particular linter should be ignored. function! s:ShouldIgnore(buffer, linter_name) abort " Ignore all diagnostics if LSP integration is disabled. @@ -33,7 +49,7 @@ endfunction function! s:HandleLSPDiagnostics(conn_id, response) abort let l:linter_name = s:lsp_linter_map[a:conn_id] - let l:filename = ale#path#FromURI(a:response.params.uri) + let l:filename = ale#util#ToResource(a:response.params.uri) let l:escaped_name = escape( \ fnameescape(l:filename), \ has('win32') ? '^' : '^,}]' @@ -466,8 +482,8 @@ function! s:CheckWithLSP(linter, details) abort " If this was a file save event, also notify the server of that. if a:linter.lsp isnot# 'tsserver' \&& getbufvar(l:buffer, 'ale_save_event_fired', 0) - \&& ale#lsp#HasCapability(l:buffer, 'did_save') - let l:include_text = ale#lsp#HasCapability(l:buffer, 'includeText') + \&& ale#lsp#HasCapability(l:id, 'did_save') + let l:include_text = ale#lsp#HasCapability(l:id, 'includeText') let l:save_message = ale#lsp#message#DidSave(l:buffer, l:include_text) let l:notified = ale#lsp#Send(l:id, l:save_message) != 0 endif @@ -477,17 +493,6 @@ function! ale#lsp_linter#CheckWithLSP(buffer, linter) abort return ale#lsp_linter#StartLSP(a:buffer, a:linter, function('s:CheckWithLSP')) endfunction -" Clear LSP linter data for the linting engine. -function! ale#lsp_linter#ClearLSPData() abort - let s:lsp_linter_map = {} - let s:custom_handlers_map = {} -endfunction - -" Just for tests. -function! ale#lsp_linter#SetLSPLinterMap(replacement_map) abort - let s:lsp_linter_map = a:replacement_map -endfunction - function! s:HandleLSPResponseToCustomRequests(conn_id, response) abort if has_key(a:response, 'id') \&& has_key(s:custom_handlers_map, a:response.id) diff --git a/sources_non_forked/ale/autoload/ale/organize_imports.vim b/sources_non_forked/ale/autoload/ale/organize_imports.vim index e2b1c0d2..a6e77863 100644 --- a/sources_non_forked/ale/autoload/ale/organize_imports.vim +++ b/sources_non_forked/ale/autoload/ale/organize_imports.vim @@ -1,6 +1,6 @@ " Author: Jerko Steiner " Description: Organize imports support for tsserver -" + function! ale#organize_imports#HandleTSServerResponse(conn_id, response) abort if get(a:response, 'command', '') isnot# 'organizeImports' return @@ -17,7 +17,10 @@ function! ale#organize_imports#HandleTSServerResponse(conn_id, response) abort \ 'description': 'Organize Imports', \ 'changes': l:file_code_edits, \ }, - \ {} + \ { + \ 'conn_id': a:conn_id, + \ 'should_save': !&hidden, + \ }, \) endfunction diff --git a/sources_non_forked/ale/autoload/ale/path.vim b/sources_non_forked/ale/autoload/ale/path.vim index c7bfd47e..cc5c6658 100644 --- a/sources_non_forked/ale/autoload/ale/path.vim +++ b/sources_non_forked/ale/autoload/ale/path.vim @@ -218,7 +218,7 @@ endfunction " Convert a filesystem path to a file:// URI " relatives paths will not be prefixed with the protocol. " For Windows paths, the `:` in C:\ etc. will not be percent-encoded. -function! ale#path#ToURI(path) abort +function! ale#path#ToFileURI(path) abort let l:has_drive_letter = a:path[1:2] is# ':\' return substitute( @@ -231,7 +231,7 @@ function! ale#path#ToURI(path) abort \) endfunction -function! ale#path#FromURI(uri) abort +function! ale#path#FromFileURI(uri) abort if a:uri[:6] is? 'file://' let l:encoded_path = a:uri[7:] elseif a:uri[:4] is? 'file:' diff --git a/sources_non_forked/ale/autoload/ale/python.vim b/sources_non_forked/ale/autoload/ale/python.vim index 81cb06e0..4dc01798 100644 --- a/sources_non_forked/ale/autoload/ale/python.vim +++ b/sources_non_forked/ale/autoload/ale/python.vim @@ -26,6 +26,7 @@ function! ale#python#FindProjectRootIni(buffer) abort \|| filereadable(l:path . '/tox.ini') \|| filereadable(l:path . '/.pyre_configuration.local') \|| filereadable(l:path . '/mypy.ini') + \|| filereadable(l:path . '/.mypy.ini') \|| filereadable(l:path . '/pycodestyle.cfg') \|| filereadable(l:path . '/.flake8') \|| filereadable(l:path . '/.flake8rc') diff --git a/sources_non_forked/ale/autoload/ale/references.vim b/sources_non_forked/ale/autoload/ale/references.vim index 38ff0d3d..c32663fe 100644 --- a/sources_non_forked/ale/autoload/ale/references.vim +++ b/sources_non_forked/ale/autoload/ale/references.vim @@ -16,6 +16,23 @@ function! ale#references#ClearLSPData() abort let s:references_map = {} endfunction +function! ale#references#FormatTSResponseItem(response_item, options) abort + if get(a:options, 'open_in') is# 'quickfix' + return { + \ 'filename': a:response_item.file, + \ 'lnum': a:response_item.start.line, + \ 'col': a:response_item.start.offset, + \} + else + return { + \ 'filename': a:response_item.file, + \ 'line': a:response_item.start.line, + \ 'column': a:response_item.start.offset, + \ 'match': substitute(a:response_item.lineText, '^\s*\(.\{-}\)\s*$', '\1', ''), + \} + endif +endfunction + function! ale#references#HandleTSServerResponse(conn_id, response) abort if get(a:response, 'command', '') is# 'references' \&& has_key(s:references_map, a:response.request_seq) @@ -25,23 +42,43 @@ function! ale#references#HandleTSServerResponse(conn_id, response) abort let l:item_list = [] for l:response_item in a:response.body.refs - call add(l:item_list, { - \ 'filename': l:response_item.file, - \ 'line': l:response_item.start.line, - \ 'column': l:response_item.start.offset, - \ 'match': substitute(l:response_item.lineText, '^\s*\(.\{-}\)\s*$', '\1', ''), - \}) + call add( + \ l:item_list, + \ ale#references#FormatTSResponseItem(l:response_item, l:options) + \) endfor if empty(l:item_list) call ale#util#Execute('echom ''No references found.''') else - call ale#preview#ShowSelection(l:item_list, l:options) + if get(l:options, 'open_in') is# 'quickfix' + call setqflist([], 'r') + call setqflist(l:item_list, 'a') + call ale#util#Execute('cc 1') + else + call ale#preview#ShowSelection(l:item_list, l:options) + endif endif endif endif endfunction +function! ale#references#FormatLSPResponseItem(response_item, options) abort + if get(a:options, 'open_in') is# 'quickfix' + return { + \ 'filename': ale#util#ToResource(a:response_item.uri), + \ 'lnum': a:response_item.range.start.line + 1, + \ 'col': a:response_item.range.start.character + 1, + \} + else + return { + \ 'filename': ale#util#ToResource(a:response_item.uri), + \ 'line': a:response_item.range.start.line + 1, + \ 'column': a:response_item.range.start.character + 1, + \} + endif +endfunction + function! ale#references#HandleLSPResponse(conn_id, response) abort if has_key(a:response, 'id') \&& has_key(s:references_map, a:response.id) @@ -53,18 +90,22 @@ function! ale#references#HandleLSPResponse(conn_id, response) abort if type(l:result) is v:t_list for l:response_item in l:result - call add(l:item_list, { - \ 'filename': ale#path#FromURI(l:response_item.uri), - \ 'line': l:response_item.range.start.line + 1, - \ 'column': l:response_item.range.start.character + 1, - \}) + call add(l:item_list, + \ ale#references#FormatLSPResponseItem(l:response_item, l:options) + \) endfor endif if empty(l:item_list) call ale#util#Execute('echom ''No references found.''') else - call ale#preview#ShowSelection(l:item_list, l:options) + if get(l:options, 'open_in') is# 'quickfix' + call setqflist([], 'r') + call setqflist(l:item_list, 'a') + call ale#util#Execute('cc 1') + else + call ale#preview#ShowSelection(l:item_list, l:options) + endif endif endif endfunction @@ -119,6 +160,8 @@ function! ale#references#Find(...) abort let l:options.open_in = 'split' elseif l:option is? '-vsplit' let l:options.open_in = 'vsplit' + elseif l:option is? '-quickfix' + let l:options.open_in = 'quickfix' endif endfor endif diff --git a/sources_non_forked/ale/autoload/ale/rename.vim b/sources_non_forked/ale/autoload/ale/rename.vim index 9030618e..a722cc94 100644 --- a/sources_non_forked/ale/autoload/ale/rename.vim +++ b/sources_non_forked/ale/autoload/ale/rename.vim @@ -84,7 +84,8 @@ function! ale#rename#HandleTSServerResponse(conn_id, response) abort \ 'changes': l:changes, \ }, \ { - \ 'should_save': 1, + \ 'conn_id': a:conn_id, + \ 'should_save': !&hidden, \ }, \) endfunction @@ -116,7 +117,8 @@ function! ale#rename#HandleLSPResponse(conn_id, response) abort \ 'changes': l:changes, \ }, \ { - \ 'should_save': 1, + \ 'conn_id': a:conn_id, + \ 'should_save': !&hidden, \ }, \) endif diff --git a/sources_non_forked/ale/autoload/ale/symbol.vim b/sources_non_forked/ale/autoload/ale/symbol.vim index ae4151ab..6c65f1b2 100644 --- a/sources_non_forked/ale/autoload/ale/symbol.vim +++ b/sources_non_forked/ale/autoload/ale/symbol.vim @@ -41,7 +41,7 @@ function! ale#symbol#HandleLSPResponse(conn_id, response) abort let l:location = l:response_item.location call add(l:item_list, { - \ 'filename': ale#path#FromURI(l:location.uri), + \ 'filename': ale#util#ToResource(l:location.uri), \ 'line': l:location.range.start.line + 1, \ 'column': l:location.range.start.character + 1, \ 'match': l:response_item.name, diff --git a/sources_non_forked/ale/autoload/ale/test.vim b/sources_non_forked/ale/autoload/ale/test.vim index 4d75d515..e03ecb65 100644 --- a/sources_non_forked/ale/autoload/ale/test.vim +++ b/sources_non_forked/ale/autoload/ale/test.vim @@ -62,25 +62,34 @@ function! ale#test#SetFilename(path) abort silent! noautocmd execute 'file ' . fnameescape(l:full_path) endfunction -function! s:RemoveModule(results) abort +function! RemoveNewerKeys(results) abort for l:item in a:results if has_key(l:item, 'module') call remove(l:item, 'module') endif + + if has_key(l:item, 'end_col') + call remove(l:item, 'end_col') + endif + + if has_key(l:item, 'end_lnum') + call remove(l:item, 'end_lnum') + endif endfor endfunction -" Return loclist data without the module string, only in newer Vim versions. -function! ale#test#GetLoclistWithoutModule() abort +" Return loclist data with only the keys supported by the lowest Vim versions. +function! ale#test#GetLoclistWithoutNewerKeys() abort let l:results = getloclist(0) - call s:RemoveModule(l:results) + call RemoveNewerKeys(l:results) return l:results endfunction -function! ale#test#GetQflistWithoutModule() abort +" Return quickfix data with only the keys supported by the lowest Vim versions. +function! ale#test#GetQflistWithoutNewerKeys() abort let l:results = getqflist() - call s:RemoveModule(l:results) + call RemoveNewerKeys(l:results) return l:results endfunction diff --git a/sources_non_forked/ale/autoload/ale/toggle.vim b/sources_non_forked/ale/autoload/ale/toggle.vim index 1311e527..122d6cc4 100644 --- a/sources_non_forked/ale/autoload/ale/toggle.vim +++ b/sources_non_forked/ale/autoload/ale/toggle.vim @@ -64,7 +64,8 @@ function! ale#toggle#ToggleBuffer(buffer) abort " Disabling ALE globally removes autocmd events, so we cannot enable " linting locally when linting is disabled globally if l:enabled && !g:ale_enabled - execute 'echom ''ALE cannot be enabled locally when disabled globally''' + " no-custom-checks + echom 'ALE cannot be enabled locally when disabled globally' return endif diff --git a/sources_non_forked/ale/autoload/ale/uri.vim b/sources_non_forked/ale/autoload/ale/uri.vim index e71c6340..d696f03d 100644 --- a/sources_non_forked/ale/autoload/ale/uri.vim +++ b/sources_non_forked/ale/autoload/ale/uri.vim @@ -25,3 +25,19 @@ function! ale#uri#Decode(value) abort \ 'g' \) endfunction + +let s:uri_handlers = { +\ 'jdt': { +\ 'OpenURILink': function('ale#uri#jdt#OpenJDTLink'), +\ } +\} + +function! ale#uri#GetURIHandler(uri) abort + for l:scheme in keys(s:uri_handlers) + if a:uri =~# '^'.l:scheme.'://' + return s:uri_handlers[scheme] + endif + endfor + + return v:null +endfunction diff --git a/sources_non_forked/ale/autoload/ale/util.vim b/sources_non_forked/ale/autoload/ale/util.vim index ec9383ac..c884076a 100644 --- a/sources_non_forked/ale/autoload/ale/util.vim +++ b/sources_non_forked/ale/autoload/ale/util.vim @@ -25,7 +25,8 @@ function! ale#util#ShowMessage(string, ...) abort " We have to assume the user is using a monospace font. if has('nvim') || (a:string !~? "\n" && len(a:string) < &columns) - execute 'echo a:string' + " no-custom-checks + echo a:string else call ale#preview#Show(split(a:string, "\n"), extend( \ { @@ -491,8 +492,12 @@ function! ale#util#FindItemAtCursor(buffer) abort return [l:info, l:loc] endfunction -function! ale#util#Input(message, value) abort - return input(a:message, a:value) +function! ale#util#Input(message, value, ...) abort + if a:0 > 0 + return input(a:message, a:value, a:1) + else + return input(a:message, a:value) + endif endfunction function! ale#util#HasBuflineApi() abort @@ -539,3 +544,31 @@ endfunction function! ale#util#GetBufferContents(buffer) abort return join(getbufline(a:buffer, 1, '$'), '\n') . '\n' endfunction + +function! ale#util#ToURI(resource) abort + let l:uri_handler = ale#uri#GetURIHandler(a:resource) + + if l:uri_handler is# v:null + " resource is a filesystem path + let l:uri = ale#path#ToFileURI(a:resource) + else + " resource is a URI + let l:uri = a:resource + endif + + return l:uri +endfunction + +function! ale#util#ToResource(uri) abort + let l:uri_handler = ale#uri#GetURIHandler(a:uri) + + if l:uri_handler is# v:null + " resource is a filesystem path + let l:resource = ale#path#FromFileURI(a:uri) + else + " resource is a URI + let l:resource = a:uri + endif + + return l:resource +endfunction diff --git a/sources_non_forked/ale/autoload/ale/virtualtext.vim b/sources_non_forked/ale/autoload/ale/virtualtext.vim index 598bc1bf..345deb70 100644 --- a/sources_non_forked/ale/autoload/ale/virtualtext.vim +++ b/sources_non_forked/ale/autoload/ale/virtualtext.vim @@ -18,26 +18,6 @@ elseif has('textprop') && has('popupwin') let s:has_virt_text = 1 endif -if !hlexists('ALEVirtualTextError') - highlight link ALEVirtualTextError ALEError -endif - -if !hlexists('ALEVirtualTextStyleError') - highlight link ALEVirtualTextStyleError ALEVirtualTextError -endif - -if !hlexists('ALEVirtualTextWarning') - highlight link ALEVirtualTextWarning ALEWarning -endif - -if !hlexists('ALEVirtualTextStyleWarning') - highlight link ALEVirtualTextStyleWarning ALEVirtualTextWarning -endif - -if !hlexists('ALEVirtualTextInfo') - highlight link ALEVirtualTextInfo ALEVirtualTextWarning -endif - function! ale#virtualtext#Clear() abort if !s:has_virt_text return diff --git a/sources_non_forked/ale/doc/ale-ada.txt b/sources_non_forked/ale/doc/ale-ada.txt index 0fc55a9c..80321dbb 100644 --- a/sources_non_forked/ale/doc/ale-ada.txt +++ b/sources_non_forked/ale/doc/ale-ada.txt @@ -2,6 +2,11 @@ ALE Ada Integration *ale-ada-options* +=============================================================================== +cspell *ale-ada-cspell* + +See |ale-cspell-options| + =============================================================================== gcc *ale-ada-gcc* diff --git a/sources_non_forked/ale/doc/ale-asciidoc.txt b/sources_non_forked/ale/doc/ale-asciidoc.txt index 86629fd4..dd8b12ff 100644 --- a/sources_non_forked/ale/doc/ale-asciidoc.txt +++ b/sources_non_forked/ale/doc/ale-asciidoc.txt @@ -2,6 +2,12 @@ ALE AsciiDoc Integration *ale-asciidoc-options* +=============================================================================== +cspell *ale-asciidoc-cspell* + +See |ale-cspell-options| + + =============================================================================== write-good *ale-asciidoc-write-good* diff --git a/sources_non_forked/ale/doc/ale-c.txt b/sources_non_forked/ale/doc/ale-c.txt index 3b9fbc44..bd8c4937 100644 --- a/sources_non_forked/ale/doc/ale-c.txt +++ b/sources_non_forked/ale/doc/ale-c.txt @@ -352,6 +352,12 @@ g:ale_cpp_cquery_cache_directory *g:ale_c_cquery_cache_directory* cache. +=============================================================================== +cspell *ale-c-cspell* + +See |ale-cspell-options| + + =============================================================================== flawfinder *ale-c-flawfinder* diff --git a/sources_non_forked/ale/doc/ale-cmake.txt b/sources_non_forked/ale/doc/ale-cmake.txt index 602637b1..e44c328e 100644 --- a/sources_non_forked/ale/doc/ale-cmake.txt +++ b/sources_non_forked/ale/doc/ale-cmake.txt @@ -21,6 +21,25 @@ g:ale_cmake_cmakelint_options *g:ale_cmake_cmakelint_options* This variable can be set to pass additional options to cmakelint. +=============================================================================== +cmake-lint *ale-cmake-cmake-lint* + +g:ale_cmake_cmake_lint_executable *g:ale_cmake_cmake_lint_executable* + *b:ale_cmake_cmake_lint_executable* + Type: |String| + Default: `'cmake-lint'` + + This variable can be set to change the path the cmake-lint. + + +g:ale_cmake_cmake_lint_options *g:ale_cmake_cmake_lint_options* + *b:ale_cmake_cmake_lint_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to cmake-lint. + + =============================================================================== cmake-format *ale-cmake-cmakeformat* diff --git a/sources_non_forked/ale/doc/ale-cpp.txt b/sources_non_forked/ale/doc/ale-cpp.txt index 17894e6e..1f079205 100644 --- a/sources_non_forked/ale/doc/ale-cpp.txt +++ b/sources_non_forked/ale/doc/ale-cpp.txt @@ -287,6 +287,21 @@ g:ale_cpp_cpplint_options *g:ale_cpp_cpplint_options* This variable can be changed to modify flags given to cpplint. +g:ale_c_cpplint_executable *g:ale_c_cpplint_executable* + *b:ale_c_cpplint_executable* + Type: |String| + Default: `'cpplint'` + + This variable can be changed to use a different executable for cpplint. + + +g:ale_c_cpplint_options *g:ale_c_cpplint_options* + *b:ale_c_cpplint_options* + Type: |String| + Default: `''` + + This variable can be changed to modify flags given to cpplint. + =============================================================================== cquery *ale-cpp-cquery* @@ -308,6 +323,12 @@ g:ale_cpp_cquery_cache_directory *g:ale_cpp_cquery_cache_directory* cache. +=============================================================================== +cspell *ale-cpp-cspell* + +See |ale-cspell-options| + + =============================================================================== flawfinder *ale-cpp-flawfinder* diff --git a/sources_non_forked/ale/doc/ale-cs.txt b/sources_non_forked/ale/doc/ale-cs.txt index bef495b9..26e2b023 100644 --- a/sources_non_forked/ale/doc/ale-cs.txt +++ b/sources_non_forked/ale/doc/ale-cs.txt @@ -90,6 +90,12 @@ g:ale_cs_csc_assemblies *g:ale_cs_csc_assemblies* \] < +=============================================================================== +cspell *ale-cs-cspell* + +See |ale-cspell-options| + + =============================================================================== dotnet-format *ale-cs-dotnet-format* diff --git a/sources_non_forked/ale/doc/ale-css.txt b/sources_non_forked/ale/doc/ale-css.txt index ff74b263..f5c240e8 100644 --- a/sources_non_forked/ale/doc/ale-css.txt +++ b/sources_non_forked/ale/doc/ale-css.txt @@ -2,6 +2,12 @@ ALE CSS Integration *ale-css-options* +=============================================================================== +cspell *ale-css-cspell* + +See |ale-cspell-options| + + =============================================================================== fecs *ale-css-fecs* @@ -43,5 +49,18 @@ g:ale_css_stylelint_use_global *g:ale_css_stylelint_use_global* See |ale-integrations-local-executables| +=============================================================================== +vscodecss *ale-css-vscode* + +Website: https://github.com/hrsh7th/vscode-langservers-extracted + +Installation +------------------------------------------------------------------------------- + +Install VSCode css language server either globally or locally: > + + npm install -g vscode-langservers-extracted +< + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-dart.txt b/sources_non_forked/ale/doc/ale-dart.txt index a046808b..4824e82e 100644 --- a/sources_non_forked/ale/doc/ale-dart.txt +++ b/sources_non_forked/ale/doc/ale-dart.txt @@ -87,39 +87,6 @@ g:ale_dart_format_options *g:ale_dart_format_options* This variable can be set to pass additional options to the dart format fixer. - -=============================================================================== -dartanalyzer *ale-dart-dartanalyzer* - -Installation -------------------------------------------------------------------------------- - -Install Dart via whatever means. `dartanalyzer` will be included in the SDK. - -You can add the SDK to `$PATH`, as described here: -https://www.dartlang.org/tools/sdk - -If you have installed Dart on Linux, you can also try the following: > - " Set the executable path for dartanalyzer to the absolute path to it. - let g:ale_dart_dartanalyzer_executable = '/usr/lib/dart/bin/dartanalyzer' -< -... or similarly for wherever your Dart SDK lives. This should work without -having to modify `$PATH`. - -ALE can only check for problems with `dartanalyzer` with the file on disk. -See |ale-lint-file-linters| - -Options -------------------------------------------------------------------------------- - -g:ale_dart_dartanalyzer_executable *g:ale_dart_dartanalyzer_executable* - *b:ale_dart_dartanalyzer_executable* - Type: |String| - Default: `'dartanalyzer'` - - This variable can be set to change the path to dartanalyzer. - - =============================================================================== dartfmt *ale-dart-dartfmt* diff --git a/sources_non_forked/ale/doc/ale-development.txt b/sources_non_forked/ale/doc/ale-development.txt index 3d0dd524..a0bba468 100644 --- a/sources_non_forked/ale/doc/ale-development.txt +++ b/sources_non_forked/ale/doc/ale-development.txt @@ -14,6 +14,7 @@ CONTENTS *ale-development-contents* 4.1. Writing Linter Tests.............|ale-development-linter-tests| 4.2. Writing Fixer Tests..............|ale-development-fixer-tests| 4.3. Running Tests in a Windows VM....|ale-development-windows-tests| + 5. Contributing.........................|ale-development-contributing| =============================================================================== 1. Introduction *ale-development-introduction* @@ -97,8 +98,8 @@ should also follow some additional rules designed to prevent mistakes. Some of these are reported with ALE's `custom-linting-rules` script. See |ale-development-tests|. -* Don't leave stray `:echo` lines in code. Use `execute 'echo' ...` if you must - echo something. +* Don't leave stray `:echo` lines in code. Write `" no-custom-checks` above + the line if you must echo something. * For strings use |is#| instead of |==#|, `is?` instead of `==?`, `isnot#` instead of `!=#`, and `isnot?` instead of `!=?`. This is because `'x' ==# 0` returns 1, while `'x' is# 0` returns 0, so you will experience fewer issues @@ -153,10 +154,9 @@ ALE runs tests with the following versions of Vim in the following environments. 1. Vim 8.0.0027 on Linux via GitHub Actions. -2. Vim 8.2.2401 on Linux via GitHub Actions. +2. Vim 8.2.4693 on Linux via GitHub Actions. 3. NeoVim 0.2.0 on Linux via GitHub Actions. -4. NeoVim 0.4.4 on Linux via GitHub Actions. -5. NeoVim 0.5.0 on Linux via GitHub Actions. +4. NeoVim 0.7.0 on Linux via GitHub Actions. 6. Vim 8 (stable builds) on Windows via AppVeyor. If you are developing ALE code on Linux, Mac OSX, or BSD, you can run ALEs @@ -444,5 +444,23 @@ You can run a specific test by passing the filename as an argument to the batch file, for example: `run-tests test/test_c_flag_parsing.vader` . This will give you results much more quickly. +=============================================================================== +5. Contributing *ale-development-contributing* + +All integration of new code into ALE is done through GitHub pull requests. +Using that tool streamlines the process and minimizes the time and effort +required to e.g. ensure test suites are run for every change. + +As for any project hosted by GitHub, the choice of platform demands every +contributor to take care to setup an account and configure it accordingly. + +Due to details of our process, a difference to many other GitHub hosted +projects is that contributors who wish to keep the author fields for their +commits unaltered need to configure a public email address in their account +and profile settings. See: https://docs.github.com/en/account-and-profile/ + +Unless configuring GitHub to expose contact details, commits will be rewritten +to appear by `USERNAME ` . + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-dockerfile.txt b/sources_non_forked/ale/doc/ale-dockerfile.txt index 284c6a10..b6e87623 100644 --- a/sources_non_forked/ale/doc/ale-dockerfile.txt +++ b/sources_non_forked/ale/doc/ale-dockerfile.txt @@ -25,6 +25,12 @@ g:ale_dockerfile_dockerfile_lint_options the dockerfile lint invocation - like custom rule file definitions. +=============================================================================== +dprint *ale-dockerfile-dprint* + +See |ale-dprint-options| and https://dprint.dev/plugins/dockerfile + + =============================================================================== hadolint *ale-dockerfile-hadolint* diff --git a/sources_non_forked/ale/doc/ale-elixir.txt b/sources_non_forked/ale/doc/ale-elixir.txt index a4e5c2c6..693db5aa 100644 --- a/sources_non_forked/ale/doc/ale-elixir.txt +++ b/sources_non_forked/ale/doc/ale-elixir.txt @@ -5,7 +5,6 @@ ALE Elixir Integration *ale-elixir-options* =============================================================================== mix *ale-elixir-mix* - The `mix` linter is disabled by default, as it can be too expensive to run. See `:help g:ale_linters` @@ -18,6 +17,7 @@ g:ale_elixir_mix_options *g:ale_elixir_mix_options* This variable can be changed to specify the mix executable. + =============================================================================== mix_format *ale-elixir-mix-format* @@ -30,6 +30,7 @@ g:ale_elixir_mix_format_options *g:ale_elixir_mix_format_options* This variable can be changed to specify the mix options passed to the mix_format fixer + =============================================================================== dialyxir *ale-elixir-dialyxir* @@ -45,6 +46,7 @@ configured on your project's `mix.exs`. See https://github.com/jeremyjh/dialyxir#with-explaining-stuff for more information. + =============================================================================== elixir-ls *ale-elixir-elixir-ls* @@ -72,6 +74,8 @@ g:ale_elixir_elixir_ls_config *g:ale_elixir_elixir_ls_config* \ } < Consult the ElixirLS documentation for more information about settings. + + =============================================================================== credo *ale-elixir-credo* @@ -79,18 +83,26 @@ Credo (https://github.com/rrrene/credo) g:ale_elixir_credo_strict *g:ale_elixir_credo_strict* - Type: Integer - Default: 0 + Type: |Integer| + Default: `0` Tells credo to run in strict mode or suggest mode. Set variable to 1 to enable --strict mode. -g:ale_elixir_credo_config_file g:ale_elixir_credo_config_file - Type: String - Default: '' +g:ale_elixir_credo_config_file *g:ale_elixir_credo_config_file* + + Type: |String| + Default: `''` Tells credo to use a custom configuration file. + +=============================================================================== +cspell *ale-elixir-cspell* + +See |ale-cspell-options| + + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-go.txt b/sources_non_forked/ale/doc/ale-go.txt index 2f1e4c1c..bce85470 100644 --- a/sources_non_forked/ale/doc/ale-go.txt +++ b/sources_non_forked/ale/doc/ale-go.txt @@ -39,7 +39,6 @@ g:ale_go_go111module *g:ale_go_go111module* golang tools. - =============================================================================== bingo *ale-go-bingo* @@ -57,6 +56,11 @@ g:ale_go_bingo_options *g:ale_go_bingo_options* Default: `''` +=============================================================================== +cspell *ale-go-cspell* + +See |ale-cspell-options| + =============================================================================== gobuild *ale-go-gobuild* @@ -80,6 +84,24 @@ g:ale_go_gofmt_options *g:ale_go_gofmt_options* This variable can be set to pass additional options to the gofmt fixer. +=============================================================================== +gofumpt *ale-go-gofumpt* + +g:ale_go_gofumpt_executable *g:ale_go_gofumpt_executable* + *b:ale_go_gofumpt_executable* + Type: |String| + Default: `'gofumpt'` + + Executable to run to use as the gofumpt fixer. + +g:ale_go_gofumpt_options *g:ale_go_gofumpt_options* + *b:ale_go_gofumpt_options* + Type: |String| + Default: `''` + + Options to pass to the gofumpt fixer. + + =============================================================================== golangci-lint *ale-go-golangci-lint* @@ -133,6 +155,7 @@ g:ale_go_langserver_options *g:ale_go_langserver_options* `-gocodecompletion` option is ignored because it is handled automatically by the |g:ale_completion_enabled| variable. + =============================================================================== golines *ale-go-golines* @@ -148,9 +171,10 @@ g:ale_go_golines_options *g:ale_go_golines_options* Type: |String| Default: '' - Additional options passed to the golines command. By default golines has + Additional options passed to the golines command. By default golines has --max-length=100 (lines above 100 characters will be wrapped) + =============================================================================== golint *ale-go-golint* @@ -330,7 +354,7 @@ g:ale_go_staticcheck_options *g:ale_go_staticcheck_options* g:ale_go_staticcheck_lint_package *g:ale_go_staticcheck_lint_package* *b:ale_go_staticcheck_lint_package* Type: |Number| - Default: `0` + Default: `1` When set to `1`, the whole Go package will be checked instead of only the current file. diff --git a/sources_non_forked/ale/doc/ale-haskell.txt b/sources_non_forked/ale/doc/ale-haskell.txt index 09894340..10b676d7 100644 --- a/sources_non_forked/ale/doc/ale-haskell.txt +++ b/sources_non_forked/ale/doc/ale-haskell.txt @@ -13,6 +13,12 @@ g:ale_haskell_brittany_executable *g:ale_haskell_brittany_executable* This variable can be changed to use a different executable for brittany. +=============================================================================== +cspell *ale-haskell-cspell* + +See |ale-cspell-options| + + =============================================================================== floskell *ale-haskell-floskell* @@ -128,7 +134,7 @@ g:ale_haskell_hlint_options g:ale_haskell_hlint_options hls *ale-haskell-hls* g:ale_haskell_hls_executable *g:ale_haskell_hls_executable* - *b:ale_haskell_his_executable* + *b:ale_haskell_hls_executable* Type: |String| Default: `'haskell-language-server-wrapper'` @@ -136,6 +142,20 @@ g:ale_haskell_hls_executable *g:ale_haskell_hls_executable* language server. +g:ale_haskell_hls_config *g:ale_haskell_hls_config* + *b:ale_haskell_hls_config* + Type: |Dictionary| + Default: `{}` + + Dictionary with configuration settings for HLS. For example, to see more + completions: +> + let g:ale_haskell_hls_config = {'haskell': {'maxCompletions': 250}} +< + Refer to HLS documentation for possible settings: + https://haskell-language-server.readthedocs.io/en/latest/configuration.html#language-specific-server-options + + =============================================================================== stack-build *ale-haskell-stack-build* diff --git a/sources_non_forked/ale/doc/ale-hcl.txt b/sources_non_forked/ale/doc/ale-hcl.txt index 59b0a9da..71e1114e 100644 --- a/sources_non_forked/ale/doc/ale-hcl.txt +++ b/sources_non_forked/ale/doc/ale-hcl.txt @@ -2,6 +2,11 @@ ALE HCL Integration *ale-hcl-options* +=============================================================================== +packer-fmt *ale-hcl-packer-fmt* + +See |ale-packer-fmt-fixer| for information about the available options. + =============================================================================== terraform-fmt *ale-hcl-terraform-fmt* diff --git a/sources_non_forked/ale/doc/ale-html.txt b/sources_non_forked/ale/doc/ale-html.txt index 2c048148..d945acdf 100644 --- a/sources_non_forked/ale/doc/ale-html.txt +++ b/sources_non_forked/ale/doc/ale-html.txt @@ -28,6 +28,11 @@ g:ale_html_angular_use_global *g:ale_html_angular_use_global* See |ale-integrations-local-executables| +=============================================================================== +cspell *ale-html-cspell* + +See |ale-cspell-options| + =============================================================================== fecs *ale-html-fecs* @@ -159,6 +164,19 @@ g:ale_html_tidy_use_global *g:html_tidy_use_global* See |ale-integrations-local-executables| +=============================================================================== +vscodehtml *ale-html-vscode* + +Website: https://github.com/hrsh7th/vscode-langservers-extracted + +Installation +------------------------------------------------------------------------------- + +Install VSCode html language server either globally or locally: > + + npm install -g vscode-langservers-extracted +< + =============================================================================== write-good *ale-html-write-good* diff --git a/sources_non_forked/ale/doc/ale-java.txt b/sources_non_forked/ale/doc/ale-java.txt index 6bd04ef9..fa38fd3a 100644 --- a/sources_non_forked/ale/doc/ale-java.txt +++ b/sources_non_forked/ale/doc/ale-java.txt @@ -41,6 +41,12 @@ g:ale_java_checkstyle_options *g:ale_java_checkstyle_options* configuration files set with |g:ale_java_checkstyle_config|. +=============================================================================== +cspell *ale-java-cspell* + +See |ale-cspell-options| + + =============================================================================== javac *ale-java-javac* @@ -91,7 +97,6 @@ List type: \ ] < - =============================================================================== google-java-format *ale-java-google-java-format* @@ -190,6 +195,7 @@ The Java language server will look for the dependencies you specify in `externalDependencies` array in your Maven and Gradle caches ~/.m2 and ~/.gradle. + =============================================================================== eclipselsp *ale-java-eclipselsp* @@ -218,8 +224,9 @@ g:ale_java_eclipselsp_path *g:ale_java_eclipselsp_path* Default: `'$HOME/eclipse.jdt.ls'` Absolute path to the location of the eclipse.jdt.ls repository folder. Or if - you have VSCode extension installed the absolute path to the VSCode extensions - folder (e.g. $HOME/.vscode/extensions/redhat.java-0.4x.0 in Linux). + you have VSCode extension installed the absolute path to the VSCode + extensions folder (e.g. $HOME/.vscode/extensions/redhat.java-0.4x.0 in + Linux). g:ale_java_eclipselsp_executable *g:ale_java_eclipse_executable* @@ -261,7 +268,8 @@ g:ale_java_eclipselsp_javaagent *g:ale_java_eclipselsp_javaagent* Default: `''` A variable to add java agent for annotation processing such as Lombok. - If you have multiple java agent files, use space to separate them. For example: + If you have multiple java agent files, use space to separate them. + For example: > let g:ale_java_eclipselsp_javaagent='/eclipse/lombok.jar /eclipse/jacoco.jar' < diff --git a/sources_non_forked/ale/doc/ale-javascript.txt b/sources_non_forked/ale/doc/ale-javascript.txt index acd886c9..7d626efe 100644 --- a/sources_non_forked/ale/doc/ale-javascript.txt +++ b/sources_non_forked/ale/doc/ale-javascript.txt @@ -23,11 +23,24 @@ To this: > /path/foo/bar/.eslintrc.js # extends: ["/path/foo/.base-eslintrc.js"] < +=============================================================================== +cspell *ale-javascript-cspell* + +See |ale-cspell-options| + + =============================================================================== deno *ale-javascript-deno* Check the docs over at |ale-typescript-deno|. + +=============================================================================== +dprint *ale-javascript-dprint* + +See |ale-dprint-options| and https://dprint.dev/plugins/typescript + + =============================================================================== eslint *ale-javascript-eslint* diff --git a/sources_non_forked/ale/doc/ale-json.txt b/sources_non_forked/ale/doc/ale-json.txt index ad0a05b1..154aee62 100644 --- a/sources_non_forked/ale/doc/ale-json.txt +++ b/sources_non_forked/ale/doc/ale-json.txt @@ -2,6 +2,18 @@ ALE JSON Integration *ale-json-options* +=============================================================================== +cspell *ale-json-cspell* + +See |ale-cspell-options| + + +=============================================================================== +dprint *ale-json-dprint* + +See |ale-dprint-options| and https://dprint.dev/plugins/json + + =============================================================================== eslint *ale-json-eslint* @@ -141,6 +153,18 @@ g:ale_json_spectral_use_global *g:ale_json_spectral_use_global* See |ale-integrations-local-executables| +=============================================================================== +vscodejson *ale-json-vscode* + +Website: https://github.com/hrsh7th/vscode-langservers-extracted + +Installation +------------------------------------------------------------------------------- + +Install VSCode json language server either globally or locally: > + + npm install -g vscode-langservers-extracted +< =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-latex.txt b/sources_non_forked/ale/doc/ale-latex.txt index bedbabcd..b3029a5b 100644 --- a/sources_non_forked/ale/doc/ale-latex.txt +++ b/sources_non_forked/ale/doc/ale-latex.txt @@ -2,6 +2,9 @@ ALE LaTeX Integration *ale-latex-options* +=============================================================================== +cspell *ale-latex-cspell* + =============================================================================== write-good *ale-latex-write-good* @@ -9,10 +12,10 @@ See |ale-write-good-options| =============================================================================== -textlint *ale-latex-textlint* +textlint *ale-latex-textlint* See |ale-text-textlint| =============================================================================== -vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-lua.txt b/sources_non_forked/ale/doc/ale-lua.txt index ac92b9ac..7ee60d0e 100644 --- a/sources_non_forked/ale/doc/ale-lua.txt +++ b/sources_non_forked/ale/doc/ale-lua.txt @@ -1,6 +1,13 @@ =============================================================================== ALE Lua Integration *ale-lua-options* + +=============================================================================== +cspell *ale-lua-cspell* + +See |ale-cspell-options| + + =============================================================================== lua-format *ale-lua-lua-format* @@ -11,6 +18,7 @@ g:ale_lua_lua_format_executable *g:ale_lua_lua_format_executable* This variable can be changed to change the path to lua-format. + g:ale_lua_lua_format_options *g:ale_lua_lua_format_options* *b:ale_lua_lua_format_options* Type: |String| @@ -29,6 +37,7 @@ g:ale_lua_luac_executable *g:ale_lua_luac_executable* This variable can be changed to change the path to luac. + =============================================================================== luacheck *ale-lua-luacheck* @@ -58,6 +67,7 @@ g:ale_lua_luafmt_executable *g:ale_lua_luafmt_executable* This variable can be set to use a different executable for luafmt. + g:ale_lua_luafmt_options *g:ale_lua_luafmt_options* *b:ale_lua_luafmt_options* Type: |String| @@ -66,6 +76,25 @@ g:ale_lua_luafmt_options *g:ale_lua_luafmt_options* This variable can be set to pass additional options to the luafmt fixer. +=============================================================================== +selene *ale-lua-selene* + +g:ale_lua_selene_executable *g:ale_lua_selene_executable* + *b:ale_lua_selene_executable* + Type: |String| + Default: `'selene'` + + This variable can be set to use a different executable for selene. + + +g:ale_lua_selene_options *g:ale_lua_selene_options* + *b:ale_lua_selene_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to selene. + + =============================================================================== stylua *ale-lua-stylua* @@ -76,6 +105,7 @@ g:ale_lua_stylua_executable *g:ale_lua_stylua_executable* This variable can be set to use a different executable for stylua. + g:ale_lua_stylua_options *g:ale_lua_stylua_options* *b:ale_lua_stylua_options* Type: |String| diff --git a/sources_non_forked/ale/doc/ale-markdown.txt b/sources_non_forked/ale/doc/ale-markdown.txt index feb37fc9..6ba78ff0 100644 --- a/sources_non_forked/ale/doc/ale-markdown.txt +++ b/sources_non_forked/ale/doc/ale-markdown.txt @@ -2,6 +2,18 @@ ALE Markdown Integration *ale-markdown-options* +=============================================================================== +cspell *ale-markdown-cspell* + +See |ale-cspell-options| + + +=============================================================================== +dprint *ale-markdown-dprint* + +See |ale-dprint-options| and https://dprint.dev/plugins/markdown + + =============================================================================== markdownlint *ale-markdown-markdownlint* @@ -98,4 +110,4 @@ See |ale-write-good-options| =============================================================================== -vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-nix.txt b/sources_non_forked/ale/doc/ale-nix.txt index c38b93db..1df7caff 100644 --- a/sources_non_forked/ale/doc/ale-nix.txt +++ b/sources_non_forked/ale/doc/ale-nix.txt @@ -7,24 +7,24 @@ nixfmt *ale-nix-nixfmt* g:ale_nix_nixfmt_executable *g:ale_nix_nixfmt_executable* *b:ale_nix_nixfmt_executable* - Type: String - Default: 'nixfmt' + Type: |String| + Default: `'nixfmt'` This variable sets the executable used for nixfmt. g:ale_nix_nixfmt_options *g:ale_nix_nixfmt_options* *b:ale_nix_nixfmt_options* - Type: String - Default: '' + Type: |String| + Default: `''` This variable can be set to pass additional options to the nixfmt fixer. =============================================================================== -nixpkgs-fmt *ale-nix-nixpkgs-fmt* +nixpkgs-fmt *ale-nix-nixpkgs-fmt* -g:ale_nix_nixpkgsfmt_executable *g:ale_nix_nixpkgsfmt_executable* - *b:ale_nix_nixpkgsfmt_executable* +g:ale_nix_nixpkgsfmt_executable *g:ale_nix_nixpkgsfmt_executable* + *b:ale_nix_nixpkgsfmt_executable* Type: |String| Default: `'nixpkgs-fmt'` @@ -35,7 +35,44 @@ g:ale_nix_nixpkgsfmt_options *g:ale_nix_nixpkgsfmt_options* Type: |String| Default: `''` - This variable can be set to pass additional options to the nixpkgs-fmt fixer. + This variable can be set to pass additional options to the nixpkgs-fmt + fixer. + + +=============================================================================== +statix *ale-nix-statix* + +g:ale_nix_statix_check_executable *g:ale_nix_statix_check_executable* + *b:ale_nix_statix_check_executable* + Type: |String| + Default: `'statix'` + + This variable sets the executable used for statix when running it as a + linter. + +g:ale_nix_statix_check_options *g:ale_nix_statix_check_options* + *b:ale_nix_statix_check_options* + Type: |String| + Default: `''` + + This variable can be used to pass additional options to statix when running + it as a linter. + +g:ale_nix_statix_fix_executable *g:ale_nix_fix_check_executable* + *b:ale_nix_fix_check_executable* + Type: |String| + Default: `'statix'` + + This variable sets the executable used for statix when running it as a + fixer. + +g:ale_nix_statix_fix_options *g:ale_nix_statix_fix_options* + *b:ale_nix_statix_fix_options* + Type: |String| + Default: `''` + + This variable can be used to pass additional options to statix when running + it as a fixer. =============================================================================== diff --git a/sources_non_forked/ale/doc/ale-ocaml.txt b/sources_non_forked/ale/doc/ale-ocaml.txt index afbc2386..a361a7b4 100644 --- a/sources_non_forked/ale/doc/ale-ocaml.txt +++ b/sources_non_forked/ale/doc/ale-ocaml.txt @@ -2,6 +2,26 @@ ALE OCaml Integration *ale-ocaml-options* +=============================================================================== +dune *ale-ocaml-dune* + + Dune is a build system for OCaml projects. The `dune format` command is + supported for automatically formatting `dune` and `dune-project` files. + +g:ale_ocaml_dune_executable *g:ale_ocaml_dune_executable* + *b:ale_ocaml_dune_executable* + Type: |String| + Default: `'dune'` + + This variable can be set to pass the path to dune. + +g:ale_ocaml_dune_options *g:ale_ocaml_dune_options* + *b:ale_ocaml_dune_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to the dune fixer. + =============================================================================== merlin *ale-ocaml-merlin* diff --git a/sources_non_forked/ale/doc/ale-php.txt b/sources_non_forked/ale/doc/ale-php.txt index 4ee016fb..2750a319 100644 --- a/sources_non_forked/ale/doc/ale-php.txt +++ b/sources_non_forked/ale/doc/ale-php.txt @@ -1,6 +1,13 @@ =============================================================================== ALE PHP Integration *ale-php-options* + +=============================================================================== +cspell *ale-php-cspell* + +See |ale-cspell-options| + + =============================================================================== langserver *ale-php-langserver* @@ -41,6 +48,7 @@ g:ale_php_phan_minimum_severity *g:ale_php_phan_minimum_severity* This variable defines the minimum severity level. + g:ale_php_phan_executable *g:ale_php_phan_executable* *b:ale_php_phan_executable* Type: |String| @@ -48,6 +56,7 @@ g:ale_php_phan_executable *g:ale_php_phan_executable* This variable sets executable used for phan or phan_client. + g:ale_php_phan_use_client *g:ale_php_phan_use_client* *b:ale_php_phan_use_client* Type: |Number| @@ -56,6 +65,7 @@ g:ale_php_phan_use_client *g:ale_php_phan_use_client* This variable can be set to 1 to use the phan_client with phan daemon mode instead of the phan standalone. + =============================================================================== phpcbf *ale-php-phpcbf* @@ -129,6 +139,7 @@ g:ale_php_phpcs_options *g:ale_php_phpcs_options* This variable can be set to pass additional options to php-cs + =============================================================================== phpmd *ale-php-phpmd* @@ -187,6 +198,15 @@ g:ale_php_phpstan_autoload *g:ale_php_phpstan_autoload* This variable sets path to phpstan autoload file. +g:ale_php_phpstan_memory_limit *g:ale_php_phpstan_memory-limit* + *b:ale_php_phpstan_memory-limit* + Type: |String| + Default: `''` + + This variable sets the memory limit for phpstan analysis. This is a string + in the same format as `php.ini` accepts, e.g. `128M`, `1G`. + + =============================================================================== psalm *ale-php-psalm* @@ -252,6 +272,33 @@ g:ale_php_php_executable *g:ale_php_php_executable* This variable sets the executable used for php. +=============================================================================== +pint *ale-php-pint* + +g:ale_php_pint_executable *g:ale_php_pint_executable* + *b:ale_php_pint_executable* + Type: |String| + Default: `'pint'` + + This variable sets the executable used for pint. + + +g:ale_php_pint_options *g:ale_php_pint_options* + *b:ale_php_pint_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to pint. + + +g:ale_php_pint_use_global *g:ale_php_pint_use_global* + *b:ale_php_pint_use_global* + Type: |Boolean| + Default: `get(g:, 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + =============================================================================== tlint *ale-php-tlint* diff --git a/sources_non_forked/ale/doc/ale-powershell.txt b/sources_non_forked/ale/doc/ale-powershell.txt index 485c9bd0..46bc6cfb 100644 --- a/sources_non_forked/ale/doc/ale-powershell.txt +++ b/sources_non_forked/ale/doc/ale-powershell.txt @@ -2,11 +2,17 @@ ALE PowerShell Integration *ale-powershell-options* +=============================================================================== +cspell *ale-powershell-cspell* + +See |ale-cspell-options| + + =============================================================================== powershell *ale-powershell-powershell* -g:ale_powershell_powershell_executable *g:ale_powershell_powershell_executable* - *b:ale_powershell_powershell_executable* +g:ale_powershell_powershell_executable *g:ale_powershell_powershell_executable* + *b:ale_powershell_powershell_executable* Type: String Default: `'pwsh'` @@ -33,7 +39,7 @@ g:ale_powershell_psscriptanalyzer_executable Default: `'pwsh'` This variable sets executable used for powershell. - + For example, on Windows you could set powershell to be Windows Powershell: > let g:ale_powershell_psscriptanalyzer_executable = 'powershell.exe' @@ -49,7 +55,7 @@ g:ale_powershell_psscriptanalyzer_module for psscriptanalyzer invocation. -g:ale_powershell_psscriptanalyzer_exclusions +g:ale_powershell_psscriptanalyzer_exclusions *g:ale_powershell_psscriptanalyzer_exclusions* *b:ale_powershell_psscriptanalyzer_exclusions* Type: |String| @@ -65,6 +71,5 @@ g:ale_powershell_psscriptanalyzer_exclusions \ 'PSAvoidUsingWriteHost,PSAvoidGlobalVars' < - =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-proto.txt b/sources_non_forked/ale/doc/ale-proto.txt index 8ab56a14..a1bf1303 100644 --- a/sources_non_forked/ale/doc/ale-proto.txt +++ b/sources_non_forked/ale/doc/ale-proto.txt @@ -8,13 +8,51 @@ Integration Information To enable `.proto` file linting, update |g:ale_linters| as appropriate: > " Enable linter for .proto files - let g:ale_linters = {'proto': ['protoc-gen-lint', 'protolint']} + let g:ale_linters = {'proto': ['buf-lint', 'protoc-gen-lint', 'protolint']} To enable `.proto` file fixing, update |g:ale_fixers| as appropriate: > " Enable linter for .proto files - let b:ale_fixers = {'proto': ['protolint']} + let b:ale_fixers = {'proto': ['buf-format', 'protolint']} < +=============================================================================== +buf-format *ale-proto-buf-format* + + The formatter uses `buf`, a fully-featured Protobuf compiler that doesn't depend + on `protoc`. Make sure the `buf` binary is available in the system path, or + set ale_proto_buf_format_executable. + +g:ale_proto_buf_format_executable *g:ale_proto_buf_format_executable* + + Type: |String| + Default: 'buf' + + This variable can be changed to modify the executable used for buf. + +=============================================================================== +buf-lint *ale-proto-buf-lint* + + The linter uses `buf`, a fully-featured Protobuf compiler that doesn't depend + on `protoc`. Make sure the `buf` binary is available in the system path, or + set ale_proto_buf_lint_executable. + +g:ale_proto_buf_lint_executable *g:ale_proto_buf_lint_executable* + + Type: |String| + Default: 'buf' + + This variable can be changed to modify the executable used for buf. + +g:ale_proto_buf_lint_config *g:ale_proto_buf_lint_config* + + Type: |String| + Default: `''` + + A path to a buf configuration file. + + The path to the configuration file can be an absolute path or a relative + path. ALE will search for the relative path in parent directories. + =============================================================================== protoc-gen-lint *ale-proto-protoc-gen-lint* diff --git a/sources_non_forked/ale/doc/ale-python.txt b/sources_non_forked/ale/doc/ale-python.txt index 10cc2897..41488a65 100644 --- a/sources_non_forked/ale/doc/ale-python.txt +++ b/sources_non_forked/ale/doc/ale-python.txt @@ -10,6 +10,7 @@ g:ale_python_auto_pipenv *g:ale_python_auto_pipenv* Detect whether the file is inside a pipenv, and set the executable to `pipenv` if true. This is overridden by a manually-set executable. + g:ale_python_auto_poetry *g:ale_python_auto_poetry* *b:ale_python_auto_poetry* Type: |Number| @@ -18,6 +19,7 @@ g:ale_python_auto_poetry *g:ale_python_auto_poetry* Detect whether the file is inside a poetry, and set the executable to `poetry` if true. This is overridden by a manually-set executable. + =============================================================================== ALE Python Project Root Behavior *ale-python-root* @@ -37,6 +39,7 @@ ALE will look for configuration files with the following filenames. > tox.ini .pyre_configuration.local mypy.ini + .mypy.ini pycodestyle.cfg .flake8 .flake8rc @@ -229,6 +232,7 @@ g:ale_python_black_auto_pipenv *g:ale_python_black_auto_pipenv* Detect whether the file is inside a pipenv, and set the executable to `pipenv` if true. This is overridden by a manually-set executable. + g:ale_python_black_auto_poetry *g:ale_python_black_auto_poetry* *b:ale_python_black_auto_poetry* Type: |Number| @@ -237,6 +241,7 @@ g:ale_python_black_auto_poetry *g:ale_python_black_auto_poetry* Detect whether the file is inside a poetry, and set the executable to `poetry` if true. This is overridden by a manually-set executable. + g:ale_python_black_change_directory *g:ale_python_black_change_directory* *b:ale_python_black_change_directory* Type: |Number| @@ -248,17 +253,23 @@ g:ale_python_black_change_directory *g:ale_python_black_change_directory* to control the directory Python is executed from yourself. +=============================================================================== +cspell *ale-python-cspell* + +See |ale-cspell-options| + + =============================================================================== flake8 *ale-python-flake8* g:ale_python_flake8_change_directory *g:ale_python_flake8_change_directory* *b:ale_python_flake8_change_directory* Type: |String| - Default: `project` + Default: `'project'` If set to `project`, ALE will switch to the project root before checking file. - If set to `file`, ALE will switch to directory the Python file being - checked with `flake8` is in before checking it. + If set to `file`, ALE will first switch to the directory containing the + Python file being checked with `flake8` before checking it. You can turn it off with `off` option if you want to control the directory Python is executed from yourself. @@ -320,6 +331,7 @@ g:ale_python_flake8_auto_poetry *g:ale_python_flake8_auto_poetry* Detect whether the file is inside a poetry, and set the executable to `poetry` if true. This is overridden by a manually-set executable. + =============================================================================== flakehell *ale-python-flakehell* @@ -384,6 +396,7 @@ g:ale_python_flakehell_auto_poetry *g:ale_python_flakehell_auto_poetry* Detect whether the file is inside a poetry, and set the executable to `poetry` if true. This is overridden by a manually-set executable. + =============================================================================== isort *ale-python-isort* @@ -504,7 +517,6 @@ g:ale_python_mypy_use_global *g:ale_python_mypy_use_global* See |ale-integrations-local-executables| - =============================================================================== prospector *ale-python-prospector* @@ -569,7 +581,6 @@ g:ale_python_prospector_auto_poetry *g:ale_python_prospector_auto_poetry* =============================================================================== pycodestyle *ale-python-pycodestyle* - g:ale_python_pycodestyle_executable *g:ale_python_pycodestyle_executable* *b:ale_python_pycodestyle_executable* Type: |String| @@ -619,7 +630,6 @@ g:ale_python_pycodestyle_auto_poetry *g:ale_python_pycodestyle_auto_poetry* =============================================================================== pydocstyle *ale-python-pydocstyle* - g:ale_python_pydocstyle_executable *g:ale_python_pydocstyle_executable* *b:ale_python_pydocstyle_executable* Type: |String| @@ -669,7 +679,6 @@ g:ale_python_pydocstyle_auto_poetry *g:ale_python_pydocstyle_auto_poetry* =============================================================================== pyflakes *ale-python-pyflakes* - g:ale_python_pyflakes_executable *g:ale_python_pyflakes_executable* *b:ale_python_pyflakes_executable* Type: |String| @@ -699,6 +708,52 @@ g:ale_python_pyflakes_auto_poetry *g:ale_python_pyflakes_auto_poetry* if true. This is overridden by a manually-set executable. +=============================================================================== +pyflyby *ale-python-pyflyby* + +g:ale_python_pyflyby_executable *g:ale_python_pyflyby_executable* + *b:ale_python_pyflyby_executable* + Type: |String| + Default: `'tidy-imports'` + + See |ale-integrations-local-executables| + + +g:ale_python_pyflyby_options *g:ale_python_pyflyby_options* + *b:ale_python_pyflyby_options* + Type: |String| + Default: `''` + + This variable can be changed to add command-line arguments to the pyflyby + tidy-imports invocation. + + +g:ale_python_pyflyby_use_global *g:ale_python_pyflyby_use_global* + *b:ale_python_pyflyby_use_global* + Type: |Number| + Default: `get(g:, 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + +g:ale_python_pyflyby_auto_pipenv *g:ale_python_pyflyby_auto_pipenv* + *b:ale_python_pyflyby_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. + + +g:ale_python_pyflyby_auto_poetry *g:ale_python_pyflyby_auto_poetry* + *b:ale_python_pyflyby_auto_poetry* + Type: |Number| + Default: `0` + + Detect whether the file is inside a poetry, and set the executable to `poetry` + if true. This is overridden by a manually-set executable. + + =============================================================================== pylama *ale-python-pylama* @@ -925,6 +980,7 @@ g:ale_python_pylsp_options *g:ale_python_pylsp_options An example stragety for installing `pylsp`: `python3 -m pip install --user pylsp` + =============================================================================== pyre *ale-python-pyre* @@ -1057,6 +1113,58 @@ g:ale_python_reorder_python_imports_use_global See |ale-integrations-local-executables| +=============================================================================== +unimport *ale-python-unimport* + +`unimport` will be run from a detected project root, per |ale-python-root|. + + +g:ale_python_unimport_auto_pipenv *g:ale_python_unimport_auto_pipenv* + *b:ale_python_unimport_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. + + +g:ale_python_unimport_auto_poetry *g:ale_python_unimport_auto_poetry* + *b:ale_python_unimport_auto_poetry* + Type: |Number| + Default: `0` + + Detect whether the file is inside a poetry, and set the executable to `poetry` + if true. This is overridden by a manually-set executable. + + +g:ale_python_unimport_executable *g:ale_python_unimport_executable* + *b:ale_python_unimport_executable* + Type: |String| + Default: `'unimport'` + + See |ale-integrations-local-executables| + + Set this to `'pipenv'` to invoke `'pipenv` `run` `unimport'`. + Set this to `'poetry'` to invoke `'poetry` `run` `unimport'`. + + +g:ale_python_unimport_options *g:ale_python_unimport_options* + *b:ale_python_unimport_options* + Type: |String| + Default: `''` + + This variable can be changed to add command-line arguments to the unimport + invocation. + + +g:ale_python_unimport_use_global *g:ale_python_unimport_use_global* + *b:ale_python_unimport_use_global* + Type: |Number| + Default: `get(g:, 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + =============================================================================== vulture *ale-python-vulture* diff --git a/sources_non_forked/ale/doc/ale-restructuredtext.txt b/sources_non_forked/ale/doc/ale-restructuredtext.txt index e308b072..7af62133 100644 --- a/sources_non_forked/ale/doc/ale-restructuredtext.txt +++ b/sources_non_forked/ale/doc/ale-restructuredtext.txt @@ -2,6 +2,12 @@ ALE reStructuredText Integration *ale-restructuredtext-options* +=============================================================================== +cspell *ale-restructuredtext-cspell* + +See |ale-cspell-options| + + =============================================================================== textlint *ale-restructuredtext-textlint* @@ -16,6 +22,7 @@ See: https://github.com/jimo1001/docutils-ast-writer See |ale-text-textlint| + =============================================================================== write-good *ale-restructuredtext-write-good* @@ -23,4 +30,4 @@ See |ale-write-good-options| =============================================================================== -vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-ruby.txt b/sources_non_forked/ale/doc/ale-ruby.txt index 69c643a9..4bc25b1a 100644 --- a/sources_non_forked/ale/doc/ale-ruby.txt +++ b/sources_non_forked/ale/doc/ale-ruby.txt @@ -21,6 +21,13 @@ g:ale_ruby_brakeman_options *g:ale_ruby_brakeman_options* The contents of this variable will be passed through to brakeman. + +=============================================================================== +cspell *ale-ruby-cspell* + +See |ale-cspell-options| + + =============================================================================== debride *ale-ruby-debride* @@ -212,7 +219,5 @@ g:ale_ruby_standardrb_options *g:ale_ruby_standardrb_options* This variable can be changed to modify flags given to standardrb. -=============================================================================== - =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-rust.txt b/sources_non_forked/ale/doc/ale-rust.txt index 3aa63673..c8ec9b13 100644 --- a/sources_non_forked/ale/doc/ale-rust.txt +++ b/sources_non_forked/ale/doc/ale-rust.txt @@ -26,8 +26,10 @@ Integration Information 4. analyzer -- If you have rust-analyzer installed, you might prefer using this linter over cargo and rls. rust-analyzer also implements the Language Server Protocol for incremental compilation of Rust code, and is - the next iteration of rls. rust-analyzer, like rls, requires Rust files - to be contained in Cargo projects. + the next iteration of rls. rust-analyzer either requires Rust files to be + contained in Cargo projects or requires the project to be described in + the rust-project.json format: + https://rust-analyzer.github.io/manual.html#non-cargo-based-projects 5. rustfmt -- If you have `rustfmt` installed, you can use it as a fixer to consistently reformat your Rust code. @@ -38,7 +40,7 @@ Integration Information let g:ale_linters = {'rust': ['rustc', 'rls']} < - Also note that rustc 1.12. or later is needed. + Also note that rustc 1.18. or later is needed. =============================================================================== @@ -145,8 +147,7 @@ g:ale_rust_cargo_avoid_whole_workspace *g:ale_rust_cargo_avoid_whole_workspace* in the crate's directory. Otherwise, behave as usual. -g:ale_rust_cargo_use_clippy - *g:ale_rust_cargo_use_clippy* +g:ale_rust_cargo_use_clippy *g:ale_rust_cargo_use_clippy* *b:ale_rust_cargo_use_clippy* Type: |Number| Default: `0` @@ -163,8 +164,7 @@ g:ale_rust_cargo_use_clippy let g:ale_rust_cargo_use_clippy = executable('cargo-clippy') < -g:ale_rust_cargo_clippy_options - *g:ale_rust_cargo_clippy_options* +g:ale_rust_cargo_clippy_options *g:ale_rust_cargo_clippy_options* *b:ale_rust_cargo_clippy_options* Type: |String| @@ -175,8 +175,7 @@ g:ale_rust_cargo_clippy_options only `cargo clippy` supports (e.g. `--deny`). -g:ale_rust_cargo_target_dir - *g:ale_rust_cargo_target_dir* +g:ale_rust_cargo_target_dir *g:ale_rust_cargo_target_dir* *b:ale_rust_cargo_target_dir* Type: |String| @@ -187,6 +186,12 @@ g:ale_rust_cargo_target_dir running `cargo` commands manually while ALE is performing its checks. +=============================================================================== +cspell *ale-rust-cspell* + +See |ale-cspell-options| + + =============================================================================== rls *ale-rust-rls* @@ -234,13 +239,13 @@ rustc *ale-rust-rustc* g:ale_rust_rustc_options *g:ale_rust_rustc_options* *b:ale_rust_rustc_options* Type: |String| - Default: `'-Z no-codegen'` + Default: `'--emit=mir -o /dev/null'` The variable can be used to change the options passed to `rustc`. - `-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. + Users of nightly builds of Rust might want to use `-Z no-codegen` instead. + Be careful when setting the options, as running `rustc` could execute code + or generate binary files. g:ale_rust_ignore_error_codes *g:ale_rust_ignore_error_codes* diff --git a/sources_non_forked/ale/doc/ale-scala.txt b/sources_non_forked/ale/doc/ale-scala.txt index c9638baf..0b0f1a9a 100644 --- a/sources_non_forked/ale/doc/ale-scala.txt +++ b/sources_non_forked/ale/doc/ale-scala.txt @@ -2,6 +2,12 @@ ALE Scala Integration *ale-scala-options* +=============================================================================== +cspell *ale-scala-cspell* + +See |ale-cspell-options| + + =============================================================================== metals *ale-scala-metals* diff --git a/sources_non_forked/ale/doc/ale-sh.txt b/sources_non_forked/ale/doc/ale-sh.txt index c06f737a..9a1928c4 100644 --- a/sources_non_forked/ale/doc/ale-sh.txt +++ b/sources_non_forked/ale/doc/ale-sh.txt @@ -25,6 +25,12 @@ g:ale_sh_bashate_options *g:ale_sh_bashate_options* let g:ale_sh_bashate_options = '-i E003' < +=============================================================================== +cspell *ale-sh-cspell* + +See |ale-cspell-options| + + =============================================================================== sh-language-server *ale-sh-language-server* diff --git a/sources_non_forked/ale/doc/ale-sql.txt b/sources_non_forked/ale/doc/ale-sql.txt index 398e24d3..80929264 100644 --- a/sources_non_forked/ale/doc/ale-sql.txt +++ b/sources_non_forked/ale/doc/ale-sql.txt @@ -2,6 +2,13 @@ ALE SQL Integration *ale-sql-options* +=============================================================================== +dprint *ale-sql-dprint* + +See |ale-dprint-options| +and https://github.com/dprint/dprint-plugin-sql/releases + + =============================================================================== pgformatter *ale-sql-pgformatter* diff --git a/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt b/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt index 36ef83ea..a0a20c7e 100644 --- a/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt +++ b/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt @@ -14,6 +14,7 @@ Notes: * Ada * `ada_language_server` + * `cspell` * `gcc` * `gnatpp` * Ansible @@ -24,7 +25,8 @@ Notes: * `apkbuild-lint` * `secfixes-check` * AsciiDoc - * `alex`!! + * `alex` + * `cspell` * `languagetool`!! * `proselint` * `redpen` @@ -33,10 +35,13 @@ Notes: * `write-good` * ASM * `gcc` +* AVRA + * `avra` * Awk * `gawk` * Bash * `bashate` + * `cspell` * `language-server` * `shell` (-n flag) * `shellcheck` @@ -47,6 +52,8 @@ Notes: * `buildifier` * BibTeX * `bibclean` +* BitBake + * `oelint-adv` * Bourne Shell * `shell` (-n flag) * `shellcheck` @@ -61,11 +68,13 @@ Notes: * `cppcheck` * `cpplint`!! * `cquery` + * `cspell` * `flawfinder` * `gcc` (`cc`) * `uncrustify` * C# * `csc`!! + * `cspell` * `dotnet-format` * `mcs` * `mcsc`!! @@ -82,9 +91,12 @@ Notes: * `cppcheck` * `cpplint`!! * `cquery` + * `cspell` * `flawfinder` * `gcc` (`cc`) * `uncrustify` +* Cairo + * `starknet` * Chef * `cookstyle` * `foodcritic`!! @@ -95,6 +107,7 @@ Notes: * `cfn-python-lint` * CMake * `cmake-format` + * `cmake-lint` * `cmakelint` * CoffeeScript * `coffee` @@ -103,6 +116,8 @@ Notes: * `ameba`!! * `crystal`!! * CSS + * `VSCode CSS language server` + * `cspell` * `csslint` * `fecs` * `prettier` @@ -127,7 +142,6 @@ Notes: * `analysis_server` * `dart-analyze`!! * `dart-format`!! - * `dartanalyzer`!! * `dartfmt`!! * `language_server` * desktop @@ -138,9 +152,11 @@ Notes: * `dhall-lint` * Dockerfile * `dockerfile_lint` + * `dprint` * `hadolint` * Elixir * `credo` + * `cspell` * `dialyxir` * `dogma`!! * `elixir-ls` @@ -178,10 +194,12 @@ Notes: * `glslls` * Go * `bingo` + * `cspell` * `go build`!! * `go mod`!! * `go vet`!! * `gofmt` + * `gofumpt` * `goimports` * `golangci-lint`!! * `golangserver` @@ -208,6 +226,7 @@ Notes: * Haskell * `brittany` * `cabal-ghc` + * `cspell` * `floskell` * `ghc` * `ghc-mod` @@ -222,10 +241,13 @@ Notes: * `stack-ghc` * `stylish-haskell` * HCL + * `packer-fmt` * `terraform-fmt` * HTML - * `alex`!! + * `VSCode HTML language server` + * `alex` * `angular` + * `cspell` * `fecs` * `html-beautify` * `htmlhint` @@ -244,13 +266,16 @@ Notes: * Java * `PMD` * `checkstyle`!! + * `cspell` * `eclipselsp` * `google-java-format` * `javac` * `javalsp` * `uncrustify` * JavaScript + * `cspell` * `deno` + * `dprint` * `eslint` * `fecs` * `flow` @@ -263,6 +288,9 @@ Notes: * `tsserver` * `xo` * JSON + * `VSCode JSON language server` + * `cspell` + * `dprint` * `eslint` * `fixjson` * `jq` @@ -283,8 +311,9 @@ Notes: * `ktlint` * `languageserver` * LaTeX (tex) - * `alex`!! + * `alex` * `chktex` + * `cspell` * `lacheck` * `proselint` * `redpen` @@ -299,20 +328,23 @@ Notes: * LLVM * `llc` * Lua + * `cspell` * `lua-format` * `luac` * `luacheck` * `luafmt` + * `selene` * `stylua` * Mail - * `alex`!! + * `alex` * `languagetool`!! * `proselint` * `vale` * Make * `checkmake` * Markdown - * `alex`!! + * `alex` + * `cspell` * `languagetool`!! * `markdownlint`!! * `mdl` @@ -339,8 +371,9 @@ Notes: * `nixfmt` * `nixpkgs-fmt` * `rnix-lsp` + * `statix` * nroff - * `alex`!! + * `alex` * `proselint` * `write-good` * Objective-C @@ -353,6 +386,7 @@ Notes: * `clangd` * `uncrustify` * OCaml + * `dune` * `merlin` (see |ale-ocaml-merlin|) * `ocamlformat` * `ocamllsp` @@ -362,6 +396,10 @@ Notes: * `ibm_validator` * `prettier` * `yamllint` +* OpenSCAD + * `SCA2D` +* Packer + * `packer-fmt-fixer` * Pascal * `ptop` * Pawn @@ -373,34 +411,40 @@ Notes: * Perl6 * `perl6 -c` * PHP + * `cspell` * `intelephense` * `langserver` * `phan` * `php -l` * `php-cs-fixer` + * `phpactor` * `phpcbf` * `phpcs` * `phpmd` * `phpstan` + * `pint` * `psalm`!! * `tlint` * PO - * `alex`!! + * `alex` * `msgfmt` * `proselint` * `write-good` * Pod - * `alex`!! + * `alex` * `proselint` * `write-good` * Pony * `ponyc` * PowerShell + * `cspell` * `powershell` * `psscriptanalyzer` * Prolog * `swipl` * proto + * `buf-format`!! + * `buf-lint`!! * `protoc-gen-lint`!! * `protolint`!! * Pug @@ -419,6 +463,7 @@ Notes: * `autopep8` * `bandit` * `black` + * `cspell` * `flake8` * `flakehell` * `isort` @@ -427,12 +472,14 @@ Notes: * `pycodestyle` * `pydocstyle` * `pyflakes` + * `pyflyby` * `pylama`!! * `pylint`!! * `pylsp` * `pyre` * `pyright` * `reorder-python-imports` + * `unimport` * `vulture`!! * `yapf` * QML @@ -452,8 +499,13 @@ Notes: * `ols` * `reason-language-server` * `refmt` +* Rego + * `cspell` + * `opacheck` + * `opafmt` * reStructuredText - * `alex`!! + * `alex` + * `cspell` * `proselint` * `redpen` * `rstcheck` @@ -466,6 +518,7 @@ Notes: * `rpmlint` * Ruby * `brakeman`!! + * `cspell` * `debride` * `prettier` * `rails_best_practices`!! @@ -478,6 +531,7 @@ Notes: * `standardrb` * Rust * `cargo`!! + * `cspell` * `rls` * `rust-analyzer` * `rustc` (see |ale-integration-rust|) @@ -488,6 +542,7 @@ Notes: * `sass-lint` * `stylelint` * Scala + * `cspell` * `fsc` * `metals` * `sbtserver` @@ -508,6 +563,7 @@ Notes: * `solhint` * `solium` * SQL + * `dprint` * `pgformatter` * `sql-lint` * `sqlfmt` @@ -522,6 +578,7 @@ Notes: * `svelteserver` * Swift * Apple `swift-format` + * `cspell` * `sourcekit-lsp` * `swiftformat` * `swiftlint` @@ -530,17 +587,20 @@ Notes: * Tcl * `nagelfar`!! * Terraform + * `checkov` * `terraform` * `terraform-fmt-fixer` * `terraform-ls` * `terraform-lsp` * `tflint` * Texinfo - * `alex`!! + * `alex` + * `cspell` * `proselint` * `write-good` * Text^ - * `alex`!! + * `alex` + * `cspell` * `languagetool`!! * `proselint` * `redpen` @@ -550,8 +610,12 @@ Notes: * Thrift * `thrift` * `thriftcheck` +* TOML + * `dprint` * TypeScript + * `cspell` * `deno` + * `dprint` * `eslint` * `fecs` * `prettier` @@ -580,23 +644,30 @@ Notes: * `vimls` * `vint` * Vim help^ - * `alex`!! + * `alex` * `proselint` * `write-good` * Vue + * `cspell` * `prettier` * `vls` + * `volar` +* WGSL + * `naga` * XHTML - * `alex`!! + * `alex` + * `cspell` * `proselint` * `write-good` * XML * `xmllint` * YAML + * `actionlint` * `circleci`!! * `prettier` * `spectral` * `swaglint` + * `yaml-language-server` * `yamlfix` * `yamllint` * YANG @@ -604,6 +675,7 @@ Notes: * Zeek * `zeek`!! * Zig + * `zigfmt` * `zls` =============================================================================== diff --git a/sources_non_forked/ale/doc/ale-swift.txt b/sources_non_forked/ale/doc/ale-swift.txt index 6d53ca7c..a443eab8 100644 --- a/sources_non_forked/ale/doc/ale-swift.txt +++ b/sources_non_forked/ale/doc/ale-swift.txt @@ -19,7 +19,8 @@ Additionally, ALE tries to locate and use the nearest existing `.swift-format` configuration file. -g:ale_swift_appleswiftformat_executable *g:ale_swift_appleswiftformat_executable* +g:ale_swift_appleswiftformat_executable + *g:ale_swift_appleswiftformat_executable* *b:ale_swift_appleswiftformat_executable* Type: |String| Default: `'swift-format'` @@ -28,7 +29,8 @@ g:ale_swift_appleswiftformat_executable *g:ale_swift_appleswiftformat_executable `swift-format`. -g:ale_swift_appleswiftformat_use_swiftpm *g:ale_swift_appleswiftformat_use_swiftpm* +g:ale_swift_appleswiftformat_use_swiftpm + *g:ale_swift_appleswiftformat_use_swiftpm* *b:ale_swift_appleswiftformat_use_swiftpm* Type: |Number| Default: `0` @@ -40,6 +42,12 @@ g:ale_swift_appleswiftformat_use_swiftpm *g:ale_swift_appleswiftformat_use_swift See |ale-integrations-local-executables| +=============================================================================== +cspell *ale-swift-cspell* + +See |ale-cspell-options| + + =============================================================================== sourcekitlsp *ale-swift-sourcekitlsp* @@ -57,4 +65,3 @@ g:ale_sourcekit_lsp_executable *g:ale_sourcekit_lsp_executable* =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: - diff --git a/sources_non_forked/ale/doc/ale-terraform.txt b/sources_non_forked/ale/doc/ale-terraform.txt index 175bdf5c..6acf63ac 100644 --- a/sources_non_forked/ale/doc/ale-terraform.txt +++ b/sources_non_forked/ale/doc/ale-terraform.txt @@ -2,6 +2,25 @@ ALE Terraform Integration *ale-terraform-options* +=============================================================================== +checkov *ale-terraform-checkov* + +g:ale_terraform_checkov_executable *g:ale_terraform_checkov_executable* + *b:ale_terraform_checkov_executable* + + Type: |String| + Default: `'checkov'` + + This variable can be changed to use a different executable for checkov. + + +g:ale_terraform_checkov_options *g:ale_terraform_checkov_options* + *b:ale_terraform_checkov_options* + Type: |String| + Default: `''` + + This variable can be changed to set additional options for checkov. + =============================================================================== terraform-fmt-fixer *ale-terraform-fmt-fixer* diff --git a/sources_non_forked/ale/doc/ale-tex.txt b/sources_non_forked/ale/doc/ale-tex.txt index ceb9fa81..147aacc4 100644 --- a/sources_non_forked/ale/doc/ale-tex.txt +++ b/sources_non_forked/ale/doc/ale-tex.txt @@ -21,7 +21,13 @@ g:ale_tex_chktex_options *g:ale_tex_chktex_options* This variable can be changed to modify flags given to chktex. ------------------------------------------------------------------------------- +=============================================================================== +cspell *ale-tex-cspell* + +See |ale-cspell-options| + + +=============================================================================== lacheck *ale-tex-lacheck* g:ale_lacheck_executable *g:ale_lacheck_executable* @@ -32,12 +38,11 @@ g:ale_lacheck_executable *g:ale_lacheck_executable* This variable can be changed to change the path to lacheck. - =============================================================================== -latexindent *ale-tex-latexindent* +latexindent *ale-tex-latexindent* -g:ale_tex_latexindent_executable *g:ale_tex_latexindent_executable* - *b:ale_tex_latexindent_executable* +g:ale_tex_latexindent_executable *g:ale_tex_latexindent_executable* + *b:ale_tex_latexindent_executable* Type: |String| Default: `'latexindent'` @@ -52,26 +57,39 @@ g:ale_tex_latexindent_options *g:ale_tex_latexindent_options* This variable can be changed to modify flags given to latexindent. - =============================================================================== -texlab *ale-tex-texlab* +texlab *ale-tex-texlab* -g:ale_tex_texlab_executable *g:ale_tex_texlab_executable* - *b:ale_tex_texlab_executable* +g:ale_tex_texlab_executable *g:ale_tex_texlab_executable* + *b:ale_tex_texlab_executable* Type: |String| Default: `'texlab'` This variable can be changed to change the path to texlab. -g:ale_tex_texlab_options *g:ale_tex_texlab_options* - *b:ale_tex_texlab_options* +g:ale_tex_texlab_options *g:ale_tex_texlab_options* + *b:ale_tex_texlab_options* Type: |String| Default: `''` - This variable can be changed to modify flags given to texlab. + This variable can be changed to modify flags given to texlab command. +g:ale_tex_texlab_config *g:ale_tex_texlab_config* + *b:ale_tex_texlab_config* + Type: |Dictionary| + Default: `{}` + Dictionary containing LSP configuration settings used to initialize texlab + language server. Refer to texlab documentation for possible settings: + + https://github.com/latex-lsp/texlab/blob/master/docs/options.md + + For example to set build onSave initialization setting: + +> + let g:ale_tex_texlab_config = {"build":{"onSave":v:true}} +< =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-texinfo.txt b/sources_non_forked/ale/doc/ale-texinfo.txt index f8ed342d..53d42b69 100644 --- a/sources_non_forked/ale/doc/ale-texinfo.txt +++ b/sources_non_forked/ale/doc/ale-texinfo.txt @@ -2,6 +2,12 @@ ALE Texinfo Integration *ale-texinfo-options* +=============================================================================== +cspell *ale-texinfo-cspell* + +See |ale-cspell-options| + + =============================================================================== write-good *ale-texinfo-write-good* @@ -9,4 +15,4 @@ See |ale-write-good-options| =============================================================================== -vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-text.txt b/sources_non_forked/ale/doc/ale-text.txt index 913d7e61..4e4d0b2e 100644 --- a/sources_non_forked/ale/doc/ale-text.txt +++ b/sources_non_forked/ale/doc/ale-text.txt @@ -2,6 +2,12 @@ ALE Text Integration *ale-text-options* +============================================================================== +cspell *ale-text-cspell* + +See |ale-cspell-options| + + =============================================================================== textlint *ale-text-textlint* @@ -39,4 +45,4 @@ See |ale-write-good-options| =============================================================================== -vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-typescript.txt b/sources_non_forked/ale/doc/ale-typescript.txt index 8984e183..788a7a5c 100644 --- a/sources_non_forked/ale/doc/ale-typescript.txt +++ b/sources_non_forked/ale/doc/ale-typescript.txt @@ -2,6 +2,12 @@ ALE TypeScript Integration *ale-typescript-options* +=============================================================================== +cspell *ale-typescript-cspell* + +See |ale-cspell-options| + + =============================================================================== deno *ale-typescript-deno* @@ -27,6 +33,7 @@ g:ale_deno_lsp_project_root *g:ale_deno_lsp_project_root* 3. Use the directory of the current buffer (if the buffer was opened from a file). + g:ale_deno_unstable *g:ale_deno_unstable* *b:ale_deno_unstable* Type: |Number| @@ -34,13 +41,21 @@ g:ale_deno_unstable *g:ale_deno_unstable* Enable or disable unstable Deno features and APIs. -g:ale_deno_importMap *g:ale_deno_importMap* - *b:ale_deno_importMap* + +g:ale_deno_importMap *g:ale_deno_importMap* + *b:ale_deno_importMap* Type: |String| Default: `'import_map.json'` Specify the import map filename to load url maps in a deno project. + +=============================================================================== +dprint *ale-typescript-dprint* + +See |ale-dprint-options| and https://dprint.dev/plugins/typescript + + =============================================================================== eslint *ale-typescript-eslint* diff --git a/sources_non_forked/ale/doc/ale-vue.txt b/sources_non_forked/ale/doc/ale-vue.txt index a2c2786f..98ac5808 100644 --- a/sources_non_forked/ale/doc/ale-vue.txt +++ b/sources_non_forked/ale/doc/ale-vue.txt @@ -2,6 +2,12 @@ ALE Vue Integration *ale-vue-options* +=============================================================================== +cspell *ale-vue-cspell* + +See |ale-cspell-options| + + =============================================================================== prettier *ale-vue-prettier* @@ -27,5 +33,36 @@ g:ale_vue_vls_use_global *g:ale_vue_vls_use_global* See |ale-integrations-local-executables| +=============================================================================== +volar *ale-vue-volar* + + It is required to have typescript installed in your project as your dev + dependency: `npm i -D typescript` + +g:ale_vue_volar_executable *g:ale_vue_volar_executable* + *b:ale_vue_volar_executable* + Type: |String| + Default: `'volar-server'` + + See |ale-integrations-local-executables| + + +g:ale_vue_volar_use_global *g:ale_vue_volar_use_global* + *b:ale_vue_volar_use_global* + Type: |Number| + Default: `get(g:, 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + +g:vue_volar_init_options *g:ale_vue_volar_init_options* + *b:ale_vue_volar_init_options* + Type: |Dictionary| + Default: `{ ... }` + + Default is too long to show here, take a look at it over + `ale_linters/vue/volar.vim` + + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-xhtml.txt b/sources_non_forked/ale/doc/ale-xhtml.txt index 3cc639ef..10ca5b82 100644 --- a/sources_non_forked/ale/doc/ale-xhtml.txt +++ b/sources_non_forked/ale/doc/ale-xhtml.txt @@ -2,6 +2,12 @@ ALE XHTML Integration *ale-xhtml-options* +=============================================================================== +cspell *ale-xhtml-cspell* + +See |ale-cspell-options| + + =============================================================================== write-good *ale-xhtml-write-good* @@ -9,4 +15,4 @@ See |ale-write-good-options| =============================================================================== -vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: + vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/sources_non_forked/ale/doc/ale-yaml.txt b/sources_non_forked/ale/doc/ale-yaml.txt index 65e0d069..9733990e 100644 --- a/sources_non_forked/ale/doc/ale-yaml.txt +++ b/sources_non_forked/ale/doc/ale-yaml.txt @@ -2,6 +2,51 @@ ALE YAML Integration *ale-yaml-options* +=============================================================================== +actionlint *ale-yaml-actionlint* + +Website: https://github.com/rhysd/actionlint + + +Installation +------------------------------------------------------------------------------- + +See installation guide: https://github.com/rhysd/actionlint#quick-start + +This linter is disabled by default and must be enabled by setting `g:ale_linters`. +To enable it only for Github Action YAML files a configuration like this is +better: + +> + au BufRead,BufNewFile */.github/*/*.y{,a}ml + \ let b:ale_linters = {'yaml': ['actionlint']} +< + +Options +------------------------------------------------------------------------------- + +g:ale_yaml_actionlint_executable *g:ale_yaml_actionlint_executable* + *b:ale_yaml_actionlint_executable* + Type: |String| + Default: `'actionlint'` + + This variable can be set to change the path to actionlint. + +g:ale_yaml_actionlint_options *g:ale_yaml_actionlint_options* + *b:ale_yaml_actionlint_options* + + Type: |String| + Default: `''` + + This variable can be set to add extra options to actionlint executable. + + For example, to disable running `shellcheck` and `pyflakes` external commands, + you may want to set: +> + let g:ale_yaml_actionlint_options = '-shellcheck= -pyflakes=' +< + Please note that passing `-format` as option is not supported at the moment. + =============================================================================== circleci *ale-yaml-circleci* @@ -105,6 +150,59 @@ g:ale_yaml_swaglint_use_global *g:ale_yaml_swaglint_use_global* See |ale-integrations-local-executables| +=============================================================================== +yaml-language-server *ale-yaml-language-server* + +Website: https://github.com/redhat-developer/yaml-language-server + + +Installation +------------------------------------------------------------------------------- + +Install yaml-language-server either globally or locally: > + + npm install yaml-language-server -g # global + npm install yaml-language-server # local + + +Options +------------------------------------------------------------------------------- + +g:ale_yaml_ls_executable *g:ale_yaml_ls_executable* + *b:ale_yaml_ls_executable* + Type: |String| + Default: `'yaml-language-server'` + + This variable can be set to change the path to yaml-language-server. + + +g:ale_yaml_ls_config *g:ale_yaml_ls_config* + *b:ale_yaml_ls_config* + Type: |Dictionary| + Default: `{}` + + Dictionary containing configuration settings that will be passed to the + language server. For example, to enable schema store: > + { + \ 'yaml': { + \ 'schemaStore': { + \ 'enable': v:true, + \ }, + \ }, + \ } +< + Consult the yaml-language-server documentation for more information about + settings. + + +g:ale_yaml_ls_use_global *g:ale_yaml_ls_use_global* + *b:ale_yaml_ls_use_global* + Type: |String| + Default: `get(g:, 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + =============================================================================== yamlfix *ale-yaml-yamlfix* diff --git a/sources_non_forked/ale/doc/ale-zig.txt b/sources_non_forked/ale/doc/ale-zig.txt index 70a53bbb..cafa12a1 100644 --- a/sources_non_forked/ale/doc/ale-zig.txt +++ b/sources_non_forked/ale/doc/ale-zig.txt @@ -7,6 +7,18 @@ Integration Information Currently, the only supported linter for zig is zls. + +=============================================================================== +zigfmt *ale-zig-zigfmt* + +g:ale_zig_zigfmt_executable *g:ale_zig_zigfmt_executable* + *b:ale_zig_zigfmt_executable* + Type: |String| + Default: `'zig'` + + The executable that will be run for the `zig fmt` fixer. + + =============================================================================== zls *ale-zig-zls* diff --git a/sources_non_forked/ale/doc/ale.txt b/sources_non_forked/ale/doc/ale.txt index 6cc81784..ff1af720 100644 --- a/sources_non_forked/ale/doc/ale.txt +++ b/sources_non_forked/ale/doc/ale.txt @@ -17,17 +17,19 @@ CONTENTS *ale-contents* 5.1 Completion........................|ale-completion| 5.2 Go To Definition..................|ale-go-to-definition| 5.3 Go To Type Definition.............|ale-go-to-type-definition| - 5.4 Find References...................|ale-find-references| - 5.5 Hovering..........................|ale-hover| - 5.6 Symbol Search.....................|ale-symbol-search| - 5.7 Refactoring: Rename, Actions......|ale-refactor| + 5.4 Go To Implementation..............|ale-go-to-type-implementation| + 5.5 Find References...................|ale-find-references| + 5.6 Hovering..........................|ale-hover| + 5.7 Symbol Search.....................|ale-symbol-search| + 5.8 Refactoring: Rename, Actions......|ale-refactor| 6. Global Options.......................|ale-options| 6.1 Highlights........................|ale-highlights| 7. Linter/Fixer Options.................|ale-integration-options| 7.1 Options for alex..................|ale-alex-options| - 7.2 Options for languagetool..........|ale-languagetool-options| - 7.3 Options for write-good............|ale-write-good-options| - 7.4 Other Linter/Fixer Options........|ale-other-integration-options| + 7.2 Options for cspell................|ale-cspell-options| + 7.3 Options for languagetool..........|ale-languagetool-options| + 7.4 Options for write-good............|ale-write-good-options| + 7.5 Other Linter/Fixer Options........|ale-other-integration-options| 8. Commands/Keybinds....................|ale-commands| 9. API..................................|ale-api| 10. Special Thanks......................|ale-special-thanks| @@ -286,6 +288,12 @@ number of the buffer that ALE wants to check. sources should perform their checks on a buffer in the background asynchronously, so they don't interrupt editing. +|ale#other_source#ShowResults()| must not be called synchronously before +ALE's engine executes its code after the |ALEWantResults| event runs. If +there are immediate results to provide to ALE, a 0 millisecond timer with +|timer_start()| can be set instead up to call |ale#other_source#ShowResults()| +after ALE has first executed its engine code for its own sources. + A plugin might integrate its own checks with ALE like so: > augroup SomeGroupName @@ -363,12 +371,16 @@ are supported for running the commands. `process_with` An optional callback for post-processing. - The callback must accept two arguments, - `(buffer, output)`, which can be used for converting - the output from a command into lines to replace the - buffer's contents with. + The callback must accept arguments `(bufnr, output)`: + the buffer number undergoing fixing and the fixer's + output as a |List| of |String|s. It must return a |List| + of |String|s that will be the new contents of the + buffer. + + This callback is useful to remove excess lines from the + command's output or apply additional changes to the + output. - A |List| of |String|s must be returned. `read_buffer` An optional key for disabling reading the buffer. @@ -535,8 +547,10 @@ The |ALEComplete| command can be used to show completion suggestions manually, even when |g:ale_completion_enabled| is set to `0`. For manually requesting completion information with Deoplete, consult Deoplete's documentation. -ALE by can support automatic imports from external modules. This behavior can -be enabled by setting the |g:ale_completion_autoimport| variable to `1`. +ALE supports automatic imports from external modules. This behavior can be +disabled by setting the |g:ale_completion_autoimport| variable to `0`. +Disabling automatic imports can drop some or all completion items from +some LSP servers (e.g. eclipselsp). You can manually request imports for symbols at the cursor with the |ALEImport| command. The word at the cursor must be an exact match for some @@ -624,14 +638,23 @@ documentation for the command for configuring how the location will be displayed. ------------------------------------------------------------------------------- -5.4 Find References *ale-find-references* +5.4 Go To Implementation *ale-go-to-implementation* + +ALE supports jumping to the files and locations where symbols are implemented +through any enabled LSP linters. The locations ALE will jump to depend on the +information returned by LSP servers. The |ALEGoToImplementation| command will +jump to the implementation of symbols under the cursor. See the documentation +for the command for configuring how the location will be displayed. + +------------------------------------------------------------------------------- +5.5 Find References *ale-find-references* ALE supports finding references for symbols though any enabled LSP linters with the |ALEFindReferences| command. See the documentation for the command for a full list of options. ------------------------------------------------------------------------------- -5.5 Hovering *ale-hover* +5.6 Hovering *ale-hover* ALE supports "hover" information for printing brief information about symbols at the cursor taken from LSP linters. The following commands are supported: @@ -653,7 +676,8 @@ Hover information can be displayed in the preview window instead by setting When using Neovim or Vim with |popupwin|, if |g:ale_hover_to_floating_preview| or |g:ale_floating_preview| is set to 1, the hover information will show in a -floating window. And |g:ale_floating_window_border| for the border setting. +floating window. The borders of the floating preview window can be customized +by setting |g:ale_floating_window_border|. For Vim 8.1+ terminals, mouse hovering is disabled by default. Enabling |balloonexpr| commands in terminals can cause scrolling issues in terminals, @@ -673,18 +697,20 @@ Documentation for symbols at the cursor can be retrieved using the |ALEDocumentation| command. This command is only available for `tsserver`. ------------------------------------------------------------------------------- -5.6 Symbol Search *ale-symbol-search* +5.7 Symbol Search *ale-symbol-search* ALE supports searching for workspace symbols via LSP linters with the |ALESymbolSearch| command. See the documentation for the command for a full list of options. ------------------------------------------------------------------------------- -5.7 Refactoring: Rename, Actions *ale-refactor* +5.8 Refactoring: Rename, Actions *ale-refactor* ALE supports renaming symbols in code such as variables or class names with the |ALERename| command. +`ALEFileRename` will rename file and fix import paths (tsserver only). + |ALECodeAction| will execute actions on the cursor or applied to a visual range selection, such as automatically fixing errors. @@ -849,11 +875,13 @@ g:ale_completion_tsserver_remove_warnings g:ale_completion_autoimport *g:ale_completion_autoimport* Type: Number - Default: `0` + Default: `1` - When this option is set to `0`, ALE will not try to automatically import - completion results from external modules. It can be enabled by setting it - to `1`. + When this option is set to `1`, ALE will try to automatically import + completion results from external modules. It can be disabled by setting it + to `0`. Some LSP servers include auto imports on every completion item so + disabling automatic imports may drop some or all completion items returnend + by it (e.g. eclipselsp). g:ale_completion_excluded_words *g:ale_completion_excluded_words* @@ -1209,14 +1237,19 @@ g:ale_floating_preview *g:ale_floating_preview* g:ale_floating_window_border *g:ale_floating_window_border* Type: |List| - Default: `['|', '-', '+', '+', '+', '+']` + Default: `['|', '-', '+', '+', '+', '+', '|', '-']` When set to `[]`, window borders are disabled. The elements in the list set - the horizontal, top, top-left, top-right, bottom-right and bottom-left - border characters, respectively. + the the characters for the left side, top, top-left corner, top-right + corner, bottom-right corner, bottom-left corner, right side, and bottom of + the floating window, respectively. If the terminal supports Unicode, you might try setting the value to - ` ['│', '─', '╭', '╮', '╯', '╰']`, to make it look nicer. + ` ['│', '─', '╭', '╮', '╯', '╰', '│', '─']`, to make it look nicer. + + NOTE: For compatibility with previous versions, if the list does not have + elements for the right side and bottom, the left side and top will be used + instead. g:ale_history_enabled *g:ale_history_enabled* @@ -1439,9 +1472,9 @@ g:ale_linter_aliases *g:ale_linter_aliases* \ 'ps1': 'powershell', \ 'rmarkdown': 'r', \ 'rmd': 'r', - \ 'svelte': ['svelte', 'javascript'], \ 'systemverilog': 'verilog', \ 'typescriptreact': ['typescript', 'tsx'], + \ 'vader': ['vim', 'vader'], \ 'verilog_systemverilog': ['verilog_systemverilog', 'verilog'], \ 'vimwiki': 'markdown', \ 'vue': ['vue', 'javascript'], @@ -1585,16 +1618,21 @@ g:ale_linters *g:ale_linters* \ 'hack': ['hack'], \ 'help': [], \ 'inko': ['inko'], + \ 'json': ['jsonlint', 'spectral'], + \ 'json': ['jsonlint', 'spectral', 'vscodejson'], + \ 'json5': [], + \ 'jsonc': [], \ 'perl': ['perlcritic'], \ 'perl6': [], \ 'python': ['flake8', 'mypy', 'pylint', 'pyright'], \ 'rust': ['cargo', 'rls'], \ 'spec': [], - \ 'svelte': ['eslint', 'svelteserver'], \ 'text': [], + \ 'vader': ['vimls'], \ 'vue': ['eslint', 'vls'], \ 'zsh': ['shell'], \ 'v': ['v'], + \ 'yaml': ['spectral', 'yaml-language-server', 'yamllint'], \} < This option can be used to enable only a particular set of linters for a @@ -1790,6 +1828,9 @@ g:ale_open_list *g:ale_open_list* loclist (|lopen|) or for the quickfix list instead if |g:ale_set_quickfix| is `1`. (|copen|) + When set to any higher numberical value, ALE will only open the window when + the number of warnings or errors are at least that many. + When set to `'on_save'`, ALE will only open the loclist after buffers have been saved. The list will be opened some time after buffers are saved and any linter for a buffer returns results. @@ -1810,8 +1851,8 @@ g:ale_open_list *g:ale_open_list* autocmd! autocmd QuitPre * if empty(&buftype) | lclose | endif augroup END -< +< g:ale_pattern_options *g:ale_pattern_options* Type: |Dictionary| @@ -2008,7 +2049,7 @@ g:ale_set_quickfix *g:ale_set_quickfix* This feature should not be used in combination with tools for searching for matches and commands like |:cfdo|, as ALE will replace the quickfix list pretty frequently. If you wish to use such tools, you should populate the - loclist instead. + loclist or use |ALEPopulateQuickfix| instead. g:ale_set_signs *g:ale_set_signs* @@ -2071,6 +2112,7 @@ g:ale_sign_priority *g:ale_sign_priority* g:ale_shell *g:ale_shell* + *b:ale_shell* Type: |String| Default: not set @@ -2088,6 +2130,7 @@ g:ale_shell *g:ale_shell* g:ale_shell_arguments *g:ale_shell_arguments* + *b:ale_shell_arguments* Type: |String| Default: not set @@ -2564,7 +2607,80 @@ g:ale_alex_use_global *g:ale_alex_use_global* ------------------------------------------------------------------------------- -7.2. Options for languagetool *ale-languagetool-options* +7.2. Options for cspell *ale-cspell-options* + +The options for `cspell` are shared between all filetypes, so options can be +configured only once. + +g:ale_cspell_executable *g:ale_cspell_executable* + *b:ale_cspell_executable* + Type: |String| + Default: `'cspell'` + + See |ale-integrations-local-executables| + + +g:ale_cspell_options *g:ale_cspell_options* + *b:ale_cspell_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to `cspell`. + + +g:ale_cspell_use_global *g:ale_cspell_use_global* + *b:ale_cspell_use_global* + Type: |Number| + Default: `get(g: 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + +------------------------------------------------------------------------------- +7.3. Options for dprint *ale-dprint-options* + +`dprint` is a fixer for many file types, including: (java|type)script, +json(c?), markdown, and more. See https://dprint.dev/plugins for an up-to-date +list of supported plugins and their configuration options. + +g:ale_dprint_executable *g:ale_dprint_executable* + *b:ale_dprint_executable* + Type: |String| + Default: `'dprint'` + + See |ale-integrations-local-executables| + + +g:ale_dprint_config *g:ale_dprint_config* + *b:ale_dprint_config* + Type: |String| + Default: `'dprint.json'` + + This variable can be changed to provide a config file to `dprint`. The + default is the nearest `dprint.json` searching upward from the current + buffer. + + See https://dprint.dev/config and https://plugins.dprint.dev + + +g:ale_dprint_options *g:ale_dprint_options* + *b:ale_dprint_options* + Type: |String| + Default: `''` + + This variable can be set to pass additional options to `dprint`. + + +g:ale_dprint_use_global *g:ale_dprint_use_global* + *b:ale_dprint_use_global* + Type: |Number| + Default: `get(g: 'ale_use_global_executables', 0)` + + See |ale-integrations-local-executables| + + +------------------------------------------------------------------------------- +7.4. Options for languagetool *ale-languagetool-options* g:ale_languagetool_executable *g:ale_languagetool_executable* *b:ale_languagetool_executable* @@ -2584,7 +2700,7 @@ g:ale_languagetool_options *g:ale_languagetool_options* ------------------------------------------------------------------------------- -7.3. Options for write-good *ale-write-good-options* +7.5. Options for write-good *ale-write-good-options* The options for `write-good` are shared between all filetypes, so options can be configured once. @@ -2614,12 +2730,13 @@ g:ale_writegood_use_global *g:ale_writegood_use_global* ------------------------------------------------------------------------------- -7.4. Other Linter/Fixer Options *ale-other-integration-options* +7.6. Other Linter/Fixer Options *ale-other-integration-options* ALE supports a very wide variety of tools. Other linter or fixer options are documented in additional help files. ada.....................................|ale-ada-options| + cspell................................|ale-ada-cspell| gcc...................................|ale-ada-gcc| gnatpp................................|ale-ada-gnatpp| ada-language-server...................|ale-ada-language-server| @@ -2629,10 +2746,13 @@ documented in additional help files. apkbuild-lint.........................|ale-apkbuild-apkbuild-lint| secfixes-check........................|ale-apkbuild-secfixes-check| asciidoc................................|ale-asciidoc-options| + cspell................................|ale-asciidoc-cspell| write-good............................|ale-asciidoc-write-good| textlint..............................|ale-asciidoc-textlint| asm.....................................|ale-asm-options| gcc...................................|ale-asm-gcc| + avra....................................|ale-avra-options| + avra..................................|ale-avra-avra| awk.....................................|ale-awk-options| gawk..................................|ale-awk-gawk| bats....................................|ale-bats-options| @@ -2641,6 +2761,8 @@ documented in additional help files. buildifier............................|ale-bazel-buildifier| bib.....................................|ale-bib-options| bibclean..............................|ale-bib-bibclean| + bitbake.................................|ale-bitbake-options| + oelint-adv............................|ale-bitbake-oelint_adv| c.......................................|ale-c-options| astyle................................|ale-c-astyle| cc....................................|ale-c-cc| @@ -2650,8 +2772,11 @@ documented in additional help files. clangtidy.............................|ale-c-clangtidy| cppcheck..............................|ale-c-cppcheck| cquery................................|ale-c-cquery| + cspell................................|ale-c-cspell| flawfinder............................|ale-c-flawfinder| uncrustify............................|ale-c-uncrustify| + cairo...................................|ale-cairo-options| + starknet..............................|ale-cairo-starknet| chef....................................|ale-chef-options| cookstyle.............................|ale-chef-cookstyle| foodcritic............................|ale-chef-foodcritic| @@ -2662,6 +2787,7 @@ documented in additional help files. cfn-python-lint.......................|ale-cloudformation-cfn-python-lint| cmake...................................|ale-cmake-options| cmakelint.............................|ale-cmake-cmakelint| + cmake-lint............................|ale-cmake-cmake-lint| cmake-format..........................|ale-cmake-cmakeformat| cpp.....................................|ale-cpp-options| astyle................................|ale-cpp-astyle| @@ -2675,18 +2801,22 @@ documented in additional help files. cppcheck..............................|ale-cpp-cppcheck| cpplint...............................|ale-cpp-cpplint| cquery................................|ale-cpp-cquery| + cspell................................|ale-cpp-cspell| flawfinder............................|ale-cpp-flawfinder| uncrustify............................|ale-cpp-uncrustify| c#......................................|ale-cs-options| csc...................................|ale-cs-csc| + cspell................................|ale-cs-cspell| dotnet-format.........................|ale-cs-dotnet-format| mcs...................................|ale-cs-mcs| mcsc..................................|ale-cs-mcsc| uncrustify............................|ale-cs-uncrustify| css.....................................|ale-css-options| + cspell................................|ale-css-cspell| fecs..................................|ale-css-fecs| prettier..............................|ale-css-prettier| stylelint.............................|ale-css-stylelint| + vscodecss.............................|ale-css-vscode| cuda....................................|ale-cuda-options| nvcc..................................|ale-cuda-nvcc| clangd................................|ale-cuda-clangd| @@ -2701,7 +2831,6 @@ documented in additional help files. analysis_server.......................|ale-dart-analysis_server| dart-analyze..........................|ale-dart-analyze| dart-format...........................|ale-dart-format| - dartanalyzer..........................|ale-dart-dartanalyzer| dartfmt...............................|ale-dart-dartfmt| desktop.................................|ale-desktop-options| desktop-file-validate.................|ale-desktop-desktop-file-validate| @@ -2711,6 +2840,7 @@ documented in additional help files. dhall-lint............................|ale-dhall-lint| dockerfile..............................|ale-dockerfile-options| dockerfile_lint.......................|ale-dockerfile-dockerfile_lint| + dprint................................|ale-dockerfile-dprint| hadolint..............................|ale-dockerfile-hadolint| elixir..................................|ale-elixir-options| mix...................................|ale-elixir-mix| @@ -2718,6 +2848,7 @@ documented in additional help files. dialyxir..............................|ale-elixir-dialyxir| elixir-ls.............................|ale-elixir-elixir-ls| credo.................................|ale-elixir-credo| + cspell................................|ale-elixir-cspell| elm.....................................|ale-elm-options| elm-format............................|ale-elm-elm-format| elm-ls................................|ale-elm-elm-ls| @@ -2746,8 +2877,10 @@ documented in additional help files. glslls................................|ale-glsl-glslls| go......................................|ale-go-options| bingo.................................|ale-go-bingo| + cspell................................|ale-go-cspell| gobuild...............................|ale-go-gobuild| gofmt.................................|ale-go-gofmt| + gofumpt...............................|ale-go-gofumpt| golangci-lint.........................|ale-go-golangci-lint| golangserver..........................|ale-go-golangserver| golines...............................|ale-go-golines| @@ -2770,6 +2903,7 @@ documented in additional help files. ember-template-lint...................|ale-handlebars-embertemplatelint| haskell.................................|ale-haskell-options| brittany..............................|ale-haskell-brittany| + cspell................................|ale-haskell-cspell| floskell..............................|ale-haskell-floskell| ghc...................................|ale-haskell-ghc| ghc-mod...............................|ale-haskell-ghc-mod| @@ -2785,15 +2919,20 @@ documented in additional help files. hie...................................|ale-haskell-hie| ormolu................................|ale-haskell-ormolu| hcl.....................................|ale-hcl-options| + packer-fmt............................|ale-hcl-packer-fmt| terraform-fmt.........................|ale-hcl-terraform-fmt| + help....................................|ale-help-options| + cspell................................|ale-help-cspell| html....................................|ale-html-options| angular...............................|ale-html-angular| + cspell................................|ale-html-cspell| fecs..................................|ale-html-fecs| html-beautify.........................|ale-html-beautify| htmlhint..............................|ale-html-htmlhint| prettier..............................|ale-html-prettier| stylelint.............................|ale-html-stylelint| tidy..................................|ale-html-tidy| + vscodehtml............................|ale-html-vscode| write-good............................|ale-html-write-good| idris...................................|ale-idris-options| idris.................................|ale-idris-idris| @@ -2805,6 +2944,7 @@ documented in additional help files. ispc..................................|ale-ispc-ispc| java....................................|ale-java-options| checkstyle............................|ale-java-checkstyle| + cspell................................|ale-java-cspell| javac.................................|ale-java-javac| google-java-format....................|ale-java-google-java-format| pmd...................................|ale-java-pmd| @@ -2812,7 +2952,9 @@ documented in additional help files. eclipselsp............................|ale-java-eclipselsp| uncrustify............................|ale-java-uncrustify| javascript..............................|ale-javascript-options| + cspell................................|ale-javascript-cspell| deno..................................|ale-javascript-deno| + dprint................................|ale-javascript-dprint| eslint................................|ale-javascript-eslint| fecs..................................|ale-javascript-fecs| flow..................................|ale-javascript-flow| @@ -2825,12 +2967,15 @@ documented in additional help files. standard..............................|ale-javascript-standard| xo....................................|ale-javascript-xo| json....................................|ale-json-options| + cspell................................|ale-json-cspell| + dprint................................|ale-json-dprint| eslint................................|ale-json-eslint| fixjson...............................|ale-json-fixjson| jsonlint..............................|ale-json-jsonlint| jq....................................|ale-json-jq| prettier..............................|ale-json-prettier| spectral..............................|ale-json-spectral| + vscodejson............................|ale-json-vscode| jsonc...................................|ale-jsonc-options| eslint................................|ale-jsonc-eslint| jsonnet.................................|ale-jsonnet-options| @@ -2845,6 +2990,7 @@ documented in additional help files. ktlint................................|ale-kotlin-ktlint| languageserver........................|ale-kotlin-languageserver| latex...................................|ale-latex-options| + cspell................................|ale-latex-cspell| write-good............................|ale-latex-write-good| textlint..............................|ale-latex-textlint| less....................................|ale-less-options| @@ -2854,12 +3000,16 @@ documented in additional help files. llvm....................................|ale-llvm-options| llc...................................|ale-llvm-llc| lua.....................................|ale-lua-options| + cspell................................|ale-lua-cspell| lua-format............................|ale-lua-lua-format| luac..................................|ale-lua-luac| luacheck..............................|ale-lua-luacheck| luafmt................................|ale-lua-luafmt| + selene................................|ale-lua-selene| stylua................................|ale-lua-stylua| markdown................................|ale-markdown-options| + cspell................................|ale-markdown-cspell| + dprint................................|ale-markdown-dprint| markdownlint..........................|ale-markdown-markdownlint| mdl...................................|ale-markdown-mdl| pandoc................................|ale-markdown-pandoc| @@ -2878,6 +3028,7 @@ documented in additional help files. nix.....................................|ale-nix-options| nixfmt................................|ale-nix-nixfmt| nixpkgs-fmt...........................|ale-nix-nixpkgs-fmt| + statix................................|ale-nix-statix| nroff...................................|ale-nroff-options| write-good............................|ale-nroff-write-good| objc....................................|ale-objc-options| @@ -2890,6 +3041,7 @@ documented in additional help files. clangd................................|ale-objcpp-clangd| uncrustify............................|ale-objcpp-uncrustify| ocaml...................................|ale-ocaml-options| + dune..................................|ale-ocaml-dune| merlin................................|ale-ocaml-merlin| ocamllsp..............................|ale-ocaml-ocamllsp| ols...................................|ale-ocaml-ols| @@ -2899,6 +3051,10 @@ documented in additional help files. ibm_validator.........................|ale-openapi-ibm-validator| prettier..............................|ale-openapi-prettier| yamllint..............................|ale-openapi-yamllint| + openscad................................|ale-openscad-options| + sca2d.................................|ale-openscad-sca2d| + packer..................................|ale-packer-options| + packer-fmt-fixer......................|ale-packer-fmt-fixer| pascal..................................|ale-pascal-options| ptop..................................|ale-pascal-ptop| pawn....................................|ale-pawn-options| @@ -2910,6 +3066,7 @@ documented in additional help files. perl6...................................|ale-perl6-options| perl6.................................|ale-perl6-perl6| php.....................................|ale-php-options| + cspell................................|ale-php-cspell| langserver............................|ale-php-langserver| phan..................................|ale-php-phan| phpcbf................................|ale-php-phpcbf| @@ -2919,6 +3076,7 @@ documented in additional help files. psalm.................................|ale-php-psalm| php-cs-fixer..........................|ale-php-php-cs-fixer| php...................................|ale-php-php| + pint..................................|ale-php-pint| tlint.................................|ale-php-tlint| intelephense..........................|ale-php-intelephense| po......................................|ale-po-options| @@ -2927,12 +3085,15 @@ documented in additional help files. write-good............................|ale-pod-write-good| pony....................................|ale-pony-options| ponyc.................................|ale-pony-ponyc| - powershell............................|ale-powershell-options| - powershell..........................|ale-powershell-powershell| - psscriptanalyzer....................|ale-powershell-psscriptanalyzer| + powershell..............................|ale-powershell-options| + cspell................................|ale-powershell-cspell| + powershell............................|ale-powershell-powershell| + psscriptanalyzer......................|ale-powershell-psscriptanalyzer| prolog..................................|ale-prolog-options| swipl.................................|ale-prolog-swipl| proto...................................|ale-proto-options| + buf-format............................|ale-proto-buf-format| + buf-lint..............................|ale-proto-buf-lint| protoc-gen-lint.......................|ale-proto-protoc-gen-lint| protolint.............................|ale-proto-protolint| pug.....................................|ale-pug-options| @@ -2953,6 +3114,7 @@ documented in additional help files. autopep8..............................|ale-python-autopep8| bandit................................|ale-python-bandit| black.................................|ale-python-black| + cspell................................|ale-python-cspell| flake8................................|ale-python-flake8| flakehell.............................|ale-python-flakehell| isort.................................|ale-python-isort| @@ -2961,12 +3123,14 @@ documented in additional help files. pycodestyle...........................|ale-python-pycodestyle| pydocstyle............................|ale-python-pydocstyle| pyflakes..............................|ale-python-pyflakes| + pyflyby...............................|ale-python-pyflyby| pylama................................|ale-python-pylama| pylint................................|ale-python-pylint| pylsp.................................|ale-python-pylsp| pyre..................................|ale-python-pyre| pyright...............................|ale-python-pyright| reorder-python-imports................|ale-python-reorder_python_imports| + unimport..............................|ale-python-unimport| vulture...............................|ale-python-vulture| yapf..................................|ale-python-yapf| qml.....................................|ale-qml-options| @@ -2980,13 +3144,19 @@ documented in additional help files. ols...................................|ale-reasonml-ols| reason-language-server................|ale-reasonml-language-server| refmt.................................|ale-reasonml-refmt| + rego....................................|ale-rego-options| + cspell................................|ale-rego-cspell| + opacheck..............................|ale-rego-opa-check| + opafmt................................|ale-rego-opa-fmt-fixer| restructuredtext........................|ale-restructuredtext-options| + cspell................................|ale-restructuredtext-cspell| textlint..............................|ale-restructuredtext-textlint| write-good............................|ale-restructuredtext-write-good| robot...................................|ale-robot-options| rflint................................|ale-robot-rflint| ruby....................................|ale-ruby-options| brakeman..............................|ale-ruby-brakeman| + cspell................................|ale-ruby-cspell| debride...............................|ale-ruby-debride| prettier..............................|ale-ruby-prettier| rails_best_practices..................|ale-ruby-rails_best_practices| @@ -3000,6 +3170,7 @@ documented in additional help files. rust....................................|ale-rust-options| analyzer..............................|ale-rust-analyzer| cargo.................................|ale-rust-cargo| + cspell................................|ale-rust-cspell| rls...................................|ale-rust-rls| rustc.................................|ale-rust-rustc| rustfmt...............................|ale-rust-rustfmt| @@ -3009,6 +3180,7 @@ documented in additional help files. sasslint..............................|ale-sass-sasslint| stylelint.............................|ale-sass-stylelint| scala...................................|ale-scala-options| + cspell................................|ale-scala-cspell| metals................................|ale-scala-metals| sbtserver.............................|ale-scala-sbtserver| scalafmt..............................|ale-scala-scalafmt| @@ -3019,6 +3191,7 @@ documented in additional help files. stylelint.............................|ale-scss-stylelint| sh......................................|ale-sh-options| bashate...............................|ale-sh-bashate| + cspell................................|ale-sh-cspell| sh-language-server....................|ale-sh-language-server| shell.................................|ale-sh-shell| shellcheck............................|ale-sh-shellcheck| @@ -3032,6 +3205,7 @@ documented in additional help files. spec....................................|ale-spec-options| rpmlint...............................|ale-spec-rpmlint| sql.....................................|ale-sql-options| + dprint................................|ale-sql-dprint| pgformatter...........................|ale-sql-pgformatter| sqlfmt................................|ale-sql-sqlfmt| sqlformat.............................|ale-sql-sqlformat| @@ -3044,12 +3218,14 @@ documented in additional help files. svelteserver..........................|ale-svelte-svelteserver| swift...................................|ale-swift-options| apple-swift-format....................|ale-swift-apple-swift-format| + cspell................................|ale-swift-cspell| sourcekitlsp..........................|ale-swift-sourcekitlsp| systemd.................................|ale-systemd-options| systemd-analyze.......................|ale-systemd-analyze| tcl.....................................|ale-tcl-options| nagelfar..............................|ale-tcl-nagelfar| terraform...............................|ale-terraform-options| + checkov...............................|ale-terraform-checkov| terraform-fmt-fixer...................|ale-terraform-fmt-fixer| terraform.............................|ale-terraform-terraform| terraform-ls..........................|ale-terraform-terraform-ls| @@ -3057,19 +3233,26 @@ documented in additional help files. tflint................................|ale-terraform-tflint| tex.....................................|ale-tex-options| chktex................................|ale-tex-chktex| + cspell................................|ale-tex-cspell| lacheck...............................|ale-tex-lacheck| latexindent...........................|ale-tex-latexindent| texlab................................|ale-tex-texlab| texinfo.................................|ale-texinfo-options| + cspell................................|ale-texinfo-cspell| write-good............................|ale-texinfo-write-good| text....................................|ale-text-options| + cspell................................|ale-text-cspell| textlint..............................|ale-text-textlint| write-good............................|ale-text-write-good| thrift..................................|ale-thrift-options| thrift................................|ale-thrift-thrift| thriftcheck...........................|ale-thrift-thriftcheck| + toml....................................|ale-toml-options| + dprint................................|ale-toml-dprint| typescript..............................|ale-typescript-options| + cspell................................|ale-typescript-cspell| deno..................................|ale-typescript-deno| + dprint................................|ale-typescript-dprint| eslint................................|ale-typescript-eslint| prettier..............................|ale-typescript-prettier| standard..............................|ale-typescript-standard| @@ -3099,17 +3282,24 @@ documented in additional help files. vimls.................................|ale-vim-vimls| vint..................................|ale-vim-vint| vue.....................................|ale-vue-options| + cspell................................|ale-vue-cspell| prettier..............................|ale-vue-prettier| vls...................................|ale-vue-vls| + volar.................................|ale-vue-volar| + wgsl....................................|ale-wgsl-options| + naga..................................|ale-wgsl-naga| xhtml...................................|ale-xhtml-options| + cspell................................|ale-xhtml-cspell| write-good............................|ale-xhtml-write-good| xml.....................................|ale-xml-options| xmllint...............................|ale-xml-xmllint| yaml....................................|ale-yaml-options| + actionlint............................|ale-yaml-actionlint| circleci..............................|ale-yaml-circleci| prettier..............................|ale-yaml-prettier| spectral..............................|ale-yaml-spectral| swaglint..............................|ale-yaml-swaglint| + yaml-language-server..................|ale-yaml-language-server| yamlfix...............................|ale-yaml-yamlfix| yamllint..............................|ale-yaml-yamllint| yang....................................|ale-yang-options| @@ -3117,6 +3307,7 @@ documented in additional help files. zeek....................................|ale-zeek-options| zeek..................................|ale-zeek-zeek| zig.....................................|ale-zig-options| + zigfmt................................|ale-zig-zigfmt| zls...................................|ale-zig-zls| @@ -3157,15 +3348,16 @@ ALEFindReferences *ALEFindReferences* The locations opened in different ways using the following variations. - `:ALEFindReferences -tab` - Open the location in a new tab. - `:ALEFindReferences -split` - Open the location in a horizontal split. - `:ALEFindReferences -vsplit` - Open the location in a vertical split. + `:ALEFindReferences -tab` - Open the location in a new tab. + `:ALEFindReferences -split` - Open the location in a horizontal split. + `:ALEFindReferences -vsplit` - Open the location in a vertical split. + `:ALEFindReferences -quickfix` - Put the locations into quickfix list. The default method used for navigating to a new location can be changed by modifying |g:ale_default_navigation|. You can add `-relative` to the command to view results with relatives paths, - instead of absolute paths. + instead of absolute paths. This option has no effect if `-quickfix` is used. The selection can be opened again with the |ALERepeatSelection| command. @@ -3256,6 +3448,33 @@ ALEGoToTypeDefinition *ALEGoToTypeDefinition* `(ale_go_to_type_definition_in_vsplit)` - `:ALEGoToTypeDefinition -vsplit` +ALEGoToImplementation *ALEGoToImplementation* + + This works similar to |ALEGoToDefinition| but instead jumps to the + implementation of symbol under the cursor. ALE will jump to a definition if + an LSP server provides a location to jump to. Otherwise, ALE will do nothing. + + The locations opened in different ways using the following variations. + + `:ALEGoToImplementation -tab` - Open the location in a new tab. + `:ALEGoToImplementation -split` - Open the location in a horizontal split. + `:ALEGoToImplementation -vsplit` - Open the location in a vertical split. + + The default method used for navigating to a new location can be changed + by modifying |g:ale_default_navigation|. + + You can jump back to the position you were at before going to the definition + of something with jump motions like CTRL-O. See |jump-motions|. + + The following Plug mappings are defined for this command, which correspond + to the following commands. + + `(ale_go_to_implementation)` - `:ALEGoToImplementation` + `(ale_go_to_implementation_in_tab)` - `:ALEGoToImplementation -tab` + `(ale_go_to_implementation_in_split)` - `:ALEGoToImplementation -split` + `(ale_go_to_implementation_in_vsplit)` - `:ALEGoToImplementation -vsplit` + + ALEHover *ALEHover* Print brief information about the symbol under the cursor, taken from any @@ -3298,6 +3517,13 @@ ALERename *ALERename* The symbol where the cursor is resting will be the symbol renamed, and a prompt will open to request a new name. + The rename operation will save all modified buffers when `set nohidden` is + set, because that disables leaving unsaved buffers in the background. See + `:help hidden` for more details. + +ALEFileRename *ALEFileRename* + + Rename a file and fix imports using `tsserver`. ALECodeAction *ALECodeAction* @@ -3345,6 +3571,20 @@ ALELintStop *ALELintStop* Any problems from previous linter results will continue to be shown. +ALEPopulateQuickfix *ALEPopulateQuickfix* +ALEPopulateLocList *ALEPopulateLocList* + + Manually populate the |quickfix| or |location-list| and show the + corresponding list. Useful when you have other uses for both the |quickfix| + and |location-list| and don't want them automatically populated. Be sure to + disable auto populating: > + + let g:ale_set_quickfix = 0 + let g:ale_set_loclist = 0 +< + With these settings, ALE will still run checking and display it with signs, + highlighting, and other output described in |ale-lint-file-linters|. + ALEPrevious *ALEPrevious* ALEPreviousWrap *ALEPreviousWrap* ALENext *ALENext* diff --git a/sources_non_forked/ale/plugin/ale.vim b/sources_non_forked/ale/plugin/ale.vim index d19824b1..12373e11 100644 --- a/sources_non_forked/ale/plugin/ale.vim +++ b/sources_non_forked/ale/plugin/ale.vim @@ -24,8 +24,10 @@ endif if !s:has_features " Only output a warning if editing some special files. if index(['', 'gitcommit'], &filetype) == -1 - execute 'echoerr ''ALE requires NeoVim >= 0.2.0 or Vim 8 with +timers +job +channel''' - execute 'echoerr ''Please update your editor appropriately.''' + " no-custom-checks + echoerr 'ALE requires NeoVim >= 0.2.0 or Vim 8 with +timers +job +channel' + " no-custom-checks + echoerr 'Please update your editor appropriately.' endif " Stop here, as it won't work. @@ -150,10 +152,11 @@ let g:ale_hover_to_floating_preview = get(g:, 'ale_hover_to_floating_preview', 0 " Detail uses floating windows in Neovim let g:ale_detail_to_floating_preview = get(g:, 'ale_detail_to_floating_preview', 0) -" Border setting for floating preview windows in Neovim -" The element in the list presents - horizontal, top, top-left, top-right, -" bottom-right and bottom-left -let g:ale_floating_window_border = get(g:, 'ale_floating_window_border', ['|', '-', '+', '+', '+', '+']) +" Border setting for floating preview windows +" The elements in the list set the characters for the left, top, top-left, +" top-right, bottom-right, bottom-left, right, and bottom of the border +" respectively +let g:ale_floating_window_border = get(g:, 'ale_floating_window_border', ['|', '-', '+', '+', '+', '+', '|', '-']) " This flag can be set to 0 to disable warnings for trailing whitespace let g:ale_warn_about_trailing_whitespace = get(g:, 'ale_warn_about_trailing_whitespace', 1) @@ -228,6 +231,10 @@ command! -bar ALELint :call ale#Queue(0, 'lint_file') " Stop current jobs when linting. command! -bar ALELintStop :call ale#engine#Stop(bufnr('')) +" Commands to manually populate the quickfixes. +command! -bar ALEPopulateQuickfix :call ale#list#ForcePopulateErrorList(1) +command! -bar ALEPopulateLocList :call ale#list#ForcePopulateErrorList(0) + " Define a command to get information about current filetype. command! -bar ALEInfo :call ale#debugging#Info() " The same, but copy output to your clipboard. @@ -246,6 +253,9 @@ command! -bar -nargs=* ALEGoToDefinition :call ale#definition#GoToCommandHandler " Go to type definition for tsserver and LSP command! -bar -nargs=* ALEGoToTypeDefinition :call ale#definition#GoToCommandHandler('type', ) +" Go to implementation for tsserver and LSP +command! -bar -nargs=* ALEGoToImplementation :call ale#definition#GoToCommandHandler('implementation', ) + " Repeat a previous selection in the preview window command! -bar ALERepeatSelection :call ale#preview#RepeatSelection() @@ -270,6 +280,9 @@ command! -bar ALEImport :call ale#completion#Import() " Rename symbols using tsserver and LSP command! -bar -bang ALERename :call ale#rename#Execute() +" Rename file using tsserver +command! -bar -bang ALEFileRename :call ale#filerename#Execute() + " Apply code actions to a range. command! -bar -range ALECodeAction :call ale#codefix#Execute() @@ -310,12 +323,16 @@ nnoremap (ale_go_to_type_definition) :ALEGoToTypeDefinition (ale_go_to_type_definition_in_tab) :ALEGoToTypeDefinition -tab nnoremap (ale_go_to_type_definition_in_split) :ALEGoToTypeDefinition -split nnoremap (ale_go_to_type_definition_in_vsplit) :ALEGoToTypeDefinitionIn -vsplit +nnoremap (ale_go_to_implementation_in_tab) :ALEGoToImplementation -tab +nnoremap (ale_go_to_implementation_in_split) :ALEGoToImplementation -split +nnoremap (ale_go_to_implementation_in_vsplit) :ALEGoToImplementation -vsplit nnoremap (ale_find_references) :ALEFindReferences nnoremap (ale_hover) :ALEHover nnoremap (ale_documentation) :ALEDocumentation inoremap (ale_complete) :ALEComplete nnoremap (ale_import) :ALEImport nnoremap (ale_rename) :ALERename +nnoremap (ale_filerename) :ALEFileRename nnoremap (ale_code_action) :ALECodeAction nnoremap (ale_repeat_selection) :ALERepeatSelection diff --git a/sources_non_forked/ale/rplugin/python3/deoplete/sources/ale.py b/sources_non_forked/ale/rplugin/python3/deoplete/sources/ale.py index 82d9bbf2..a692dc31 100644 --- a/sources_non_forked/ale/rplugin/python3/deoplete/sources/ale.py +++ b/sources_non_forked/ale/rplugin/python3/deoplete/sources/ale.py @@ -32,6 +32,7 @@ class Source(Base): 'rust': r'(\.|::)\w*$', 'typescript': r'(\.|\'|")\w*$', 'cpp': r'(\.|::|->)\w*$', + 'c': r'(\.|->)\w*$', } # Returns an integer for the start position, as with omnifunc. diff --git a/sources_non_forked/ale/supported-tools.md b/sources_non_forked/ale/supported-tools.md index b2c0ec48..bdad2b3b 100644 --- a/sources_non_forked/ale/supported-tools.md +++ b/sources_non_forked/ale/supported-tools.md @@ -23,6 +23,7 @@ formatting. * Ada * [ada_language_server](https://github.com/AdaCore/ada_language_server) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [gcc](https://gcc.gnu.org) * [gnatpp](https://docs.adacore.com/gnat_ugn-docs/html/gnat_ugn/gnat_ugn/gnat_utility_programs.html#the-gnat-pretty-printer-gnatpp) :floppy_disk: * Ansible @@ -33,7 +34,8 @@ formatting. * [apkbuild-lint](https://gitlab.alpinelinux.org/Leo/atools) * [secfixes-check](https://gitlab.alpinelinux.org/Leo/atools) * AsciiDoc - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [languagetool](https://languagetool.org/) :floppy_disk: * [proselint](http://proselint.com/) * [redpen](http://redpen.cc/) @@ -42,10 +44,13 @@ formatting. * [write-good](https://github.com/btford/write-good) * ASM * [gcc](https://gcc.gnu.org) +* AVRA + * [avra](https://github.com/Ro5bert/avra) * Awk * [gawk](https://www.gnu.org/software/gawk/) * Bash * [bashate](https://github.com/openstack/bashate) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [language-server](https://github.com/mads-hartmann/bash-language-server) * shell [-n flag](https://www.gnu.org/software/bash/manual/bash.html#index-set) * [shellcheck](https://www.shellcheck.net/) @@ -56,6 +61,8 @@ formatting. * [buildifier](https://github.com/bazelbuild/buildtools) * BibTeX * [bibclean](http://ftp.math.utah.edu/pub/bibclean/) +* BitBake + * [oelint-adv](https://github.com/priv-kweihmann/oelint-adv) * Bourne Shell * shell [-n flag](http://linux.die.net/man/1/sh) * [shellcheck](https://www.shellcheck.net/) @@ -68,13 +75,15 @@ formatting. * [clangd](https://clang.llvm.org/extra/clangd.html) * [clangtidy](http://clang.llvm.org/extra/clang-tidy/) :floppy_disk: * [cppcheck](http://cppcheck.sourceforge.net) - * [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) + * [cpplint](https://github.com/cpplint/cpplint) * [cquery](https://github.com/cquery-project/cquery) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [flawfinder](https://www.dwheeler.com/flawfinder/) * [gcc](https://gcc.gnu.org/) * [uncrustify](https://github.com/uncrustify/uncrustify) * C# * [csc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-csc` for details and configuration + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [dotnet-format](https://github.com/dotnet/format) * [mcs](http://www.mono-project.com/docs/about-mono/languages/csharp/) see:`help ale-cs-mcs` for details * [mcsc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-mcsc` for details and configuration @@ -91,9 +100,12 @@ formatting. * [cppcheck](http://cppcheck.sourceforge.net) * [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) :floppy_disk: * [cquery](https://github.com/cquery-project/cquery) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [flawfinder](https://www.dwheeler.com/flawfinder/) * [gcc](https://gcc.gnu.org/) * [uncrustify](https://github.com/uncrustify/uncrustify) +* Cairo + * [starknet](https://starknet.io/docs) * Chef * [cookstyle](https://docs.chef.io/cookstyle.html) * [foodcritic](http://www.foodcritic.io/) :floppy_disk: @@ -104,7 +116,8 @@ formatting. * [cfn-python-lint](https://github.com/awslabs/cfn-python-lint) * CMake * [cmake-format](https://github.com/cheshirekow/cmake_format) - * [cmakelint](https://github.com/richq/cmake-lint) + * [cmake-lint](https://github.com/cheshirekow/cmake_format) + * [cmakelint](https://github.com/cmake-lint/cmake-lint) * CoffeeScript * [coffee](http://coffeescript.org/) * [coffeelint](https://www.npmjs.com/package/coffeelint) @@ -112,6 +125,8 @@ formatting. * [ameba](https://github.com/veelenga/ameba) :floppy_disk: * [crystal](https://crystal-lang.org/) :floppy_disk: * CSS + * [VSCode CSS language server](https://github.com/hrsh7th/vscode-langservers-extracted) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [csslint](http://csslint.net/) * [fecs](http://fecs.baidu.com/) * [prettier](https://github.com/prettier/prettier) @@ -135,9 +150,8 @@ formatting. * Dart * [analysis_server](https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server) * [dart-analyze](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) :floppy_disk: - * [dart-format](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) :floppy_disk: - * [dartanalyzer](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) :floppy_disk: - * [dartfmt](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) :floppy_disk: + * [dart-format](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) + * [dartfmt](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) * [language_server](https://github.com/natebosch/dart_language_server) * desktop * [desktop-file-validate](https://www.freedesktop.org/wiki/Software/desktop-file-utils/) @@ -147,9 +161,11 @@ formatting. * [dhall-lint](https://github.com/dhall-lang/dhall-lang) * Dockerfile * [dockerfile_lint](https://github.com/projectatomic/dockerfile_lint) + * [dprint](https://dprint.dev) * [hadolint](https://github.com/hadolint/hadolint) * Elixir * [credo](https://github.com/rrrene/credo) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) :warning: * [dialyxir](https://github.com/jeremyjh/dialyxir) * [dogma](https://github.com/lpil/dogma) :floppy_disk: * [elixir-ls](https://github.com/elixir-lsp/elixir-ls) :warning: @@ -187,10 +203,12 @@ formatting. * [glslls](https://github.com/svenstaro/glsl-language-server) * Go * [bingo](https://github.com/saibing/bingo) :warning: + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) :warning: * [go build](https://golang.org/cmd/go/) :warning: :floppy_disk: * [go mod](https://golang.org/cmd/go/) :warning: :floppy_disk: * [go vet](https://golang.org/cmd/vet/) :floppy_disk: * [gofmt](https://golang.org/cmd/gofmt/) + * [gofumpt](https://github.com/mvdan/gofumpt) * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) :warning: * [golangci-lint](https://github.com/golangci/golangci-lint) :warning: :floppy_disk: * [golangserver](https://github.com/sourcegraph/go-langserver) :warning: @@ -217,6 +235,7 @@ formatting. * Haskell * [brittany](https://github.com/lspitzner/brittany) * [cabal-ghc](https://www.haskell.org/cabal/) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [floskell](https://github.com/ennocramer/floskell) * [ghc](https://www.haskell.org/ghc/) * [ghc-mod](https://github.com/DanielG/ghc-mod) @@ -231,10 +250,13 @@ formatting. * [stack-ghc](https://haskellstack.org/) * [stylish-haskell](https://github.com/jaspervdj/stylish-haskell) * HCL + * [packer-fmt](https://github.com/hashicorp/packer) * [terraform-fmt](https://github.com/hashicorp/terraform) * HTML - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [VSCode HTML language server](https://github.com/hrsh7th/vscode-langservers-extracted) + * [alex](https://github.com/get-alex/alex) * [angular](https://www.npmjs.com/package/@angular/language-server) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [fecs](http://fecs.baidu.com/) * [html-beautify](https://beautifier.io/) * [htmlhint](http://htmlhint.com/) @@ -253,13 +275,16 @@ formatting. * Java * [PMD](https://pmd.github.io/) * [checkstyle](http://checkstyle.sourceforge.net) :floppy_disk: + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [eclipselsp](https://github.com/eclipse/eclipse.jdt.ls) * [google-java-format](https://github.com/google/google-java-format) * [javac](http://www.oracle.com/technetwork/java/javase/downloads/index.html) * [javalsp](https://github.com/georgewfraser/vscode-javac) * [uncrustify](https://github.com/uncrustify/uncrustify) * JavaScript + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [deno](https://deno.land/) + * [dprint](https://dprint.dev/) * [eslint](http://eslint.org/) * [fecs](http://fecs.baidu.com/) * [flow](https://flowtype.org/) @@ -272,16 +297,19 @@ formatting. * [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29) * [xo](https://github.com/sindresorhus/xo) * JSON - * [eslint](http://eslint.org/) + * [VSCode JSON language server](https://github.com/hrsh7th/vscode-langservers-extracted) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) :warning: + * [dprint](https://dprint.dev) + * [eslint](http://eslint.org/) :warning: * [fixjson](https://github.com/rhysd/fixjson) - * [jq](https://stedolan.github.io/jq/) + * [jq](https://stedolan.github.io/jq/) :warning: * [jsonlint](https://github.com/zaach/jsonlint) * [prettier](https://github.com/prettier/prettier) * [spectral](https://github.com/stoplightio/spectral) * JSON5 - * [eslint](http://eslint.org/) + * [eslint](http://eslint.org/) :warning: * JSONC - * [eslint](http://eslint.org/) + * [eslint](http://eslint.org/) :warning: * Jsonnet * [jsonnet-lint](https://jsonnet.org/learning/tools.html) * [jsonnetfmt](https://jsonnet.org/learning/tools.html) @@ -292,8 +320,9 @@ formatting. * [ktlint](https://ktlint.github.io) * [languageserver](https://github.com/fwcd/KotlinLanguageServer) see `:help ale-integration-kotlin` for configuration instructions * LaTeX - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) * [chktex](http://www.nongnu.org/chktex/) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [lacheck](https://www.ctan.org/pkg/lacheck) * [proselint](http://proselint.com/) * [redpen](http://redpen.cc/) @@ -308,20 +337,23 @@ formatting. * LLVM * [llc](https://llvm.org/docs/CommandGuide/llc.html) * Lua + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [lua-format](https://github.com/Koihik/LuaFormatter) * [luac](https://www.lua.org/manual/5.1/luac.html) * [luacheck](https://github.com/mpeterv/luacheck) * [luafmt](https://github.com/trixnz/lua-fmt) + * [selene](https://github.com/Kampfkarren/selene) * [stylua](https://github.com/johnnymorganz/stylua) * Mail - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) * [languagetool](https://languagetool.org/) :floppy_disk: * [proselint](http://proselint.com/) * [vale](https://github.com/ValeLint/vale) * Make * [checkmake](https://github.com/mrtazz/checkmake) * Markdown - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [languagetool](https://languagetool.org/) :floppy_disk: * [markdownlint](https://github.com/DavidAnson/markdownlint) :floppy_disk: * [mdl](https://github.com/mivok/markdownlint) @@ -348,8 +380,9 @@ formatting. * [nixfmt](https://github.com/serokell/nixfmt) * [nixpkgs-fmt](https://github.com/nix-community/nixpkgs-fmt) * [rnix-lsp](https://github.com/nix-community/rnix-lsp) + * [statix](https://github.com/nerdypepper/statix) * nroff - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) * [proselint](http://proselint.com/) * [write-good](https://github.com/btford/write-good) * Objective-C @@ -362,6 +395,7 @@ formatting. * [clangd](https://clang.llvm.org/extra/clangd.html) * [uncrustify](https://github.com/uncrustify/uncrustify) * OCaml + * [dune](https://dune.build/) * [merlin](https://github.com/the-lambda-church/merlin) see `:help ale-ocaml-merlin` for configuration instructions * [ocamlformat](https://github.com/ocaml-ppx/ocamlformat) * [ocamllsp](https://github.com/ocaml/ocaml-lsp) @@ -371,6 +405,10 @@ formatting. * [ibm_validator](https://github.com/IBM/openapi-validator) * [prettier](https://github.com/prettier/prettier) * [yamllint](https://yamllint.readthedocs.io/) +* OpenSCAD + * [SCA2D](https://gitlab.com/bath_open_instrumentation_group/sca2d) :floppy_disk: +* Packer (HCL) + * [packer-fmt-fixer](https://github.com/hashicorp/packer) * Pascal * [ptop](https://www.freepascal.org/tools/ptop.var) * Pawn @@ -382,34 +420,40 @@ formatting. * Perl6 * [perl6 -c](https://perl6.org) :warning: * PHP + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [intelephense](https://github.com/bmewburn/intelephense-docs) * [langserver](https://github.com/felixfbecker/php-language-server) * [phan](https://github.com/phan/phan) see `:help ale-php-phan` to instructions * [php -l](https://secure.php.net/) - * [php-cs-fixer](http://cs.sensiolabs.org/) + * [php-cs-fixer](https://cs.symfony.com) + * [phpactor](https://github.com/phpactor/phpactor) * [phpcbf](https://github.com/squizlabs/PHP_CodeSniffer) * [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) * [phpmd](https://phpmd.org) * [phpstan](https://github.com/phpstan/phpstan) + * [pint](https://github.com/laravel/pint) :beer: * [psalm](https://getpsalm.org) :floppy_disk: * [tlint](https://github.com/tightenco/tlint) * PO - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) * [msgfmt](https://www.gnu.org/software/gettext/manual/html_node/msgfmt-Invocation.html) * [proselint](http://proselint.com/) * [write-good](https://github.com/btford/write-good) * Pod - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) * [proselint](http://proselint.com/) * [write-good](https://github.com/btford/write-good) * Pony * [ponyc](https://github.com/ponylang/ponyc) * PowerShell + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [powershell](https://github.com/PowerShell/PowerShell) * [psscriptanalyzer](https://github.com/PowerShell/PSScriptAnalyzer) * Prolog * [swipl](https://github.com/SWI-Prolog/swipl-devel) * proto + * [buf-format](https://github.com/bufbuild/buf) :floppy_disk: + * [buf-lint](https://github.com/bufbuild/buf) :floppy_disk: * [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint) :floppy_disk: * [protolint](https://github.com/yoheimuta/protolint) :floppy_disk: * Pug @@ -427,7 +471,8 @@ formatting. * [autoimport](https://lyz-code.github.io/autoimport/) * [autopep8](https://github.com/hhatto/autopep8) * [bandit](https://github.com/PyCQA/bandit) :warning: - * [black](https://github.com/ambv/black) + * [black](https://github.com/psf/black) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [flake8](http://flake8.pycqa.org/en/latest/) * [flakehell](https://github.com/flakehell/flakehell) * [isort](https://github.com/timothycrosley/isort) @@ -436,12 +481,14 @@ formatting. * [pycodestyle](https://github.com/PyCQA/pycodestyle) :warning: * [pydocstyle](https://www.pydocstyle.org/) :warning: * [pyflakes](https://github.com/PyCQA/pyflakes) + * [pyflyby](https://github.com/deshaw/pyflyby) :warning: * [pylama](https://github.com/klen/pylama) :floppy_disk: * [pylint](https://www.pylint.org/) :floppy_disk: * [pylsp](https://github.com/python-lsp/python-lsp-server) :warning: * [pyre](https://github.com/facebook/pyre-check) :warning: * [pyright](https://github.com/microsoft/pyright) * [reorder-python-imports](https://github.com/asottile/reorder_python_imports) + * [unimport](https://github.com/hakancelik96/unimport) * [vulture](https://github.com/jendrikseipp/vulture) :warning: :floppy_disk: * [yapf](https://github.com/google/yapf) * QML @@ -461,8 +508,13 @@ formatting. * [ols](https://github.com/freebroccolo/ocaml-language-server) * [reason-language-server](https://github.com/jaredly/reason-language-server) * [refmt](https://github.com/reasonml/reason-cli) +* Rego + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) + * [opacheck](https://www.openpolicyagent.org/docs/latest/cli/#opa-check) + * [opafmt](https://www.openpolicyagent.org/docs/latest/cli/#opa-fmt) * reStructuredText - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [proselint](http://proselint.com/) * [redpen](http://redpen.cc/) * [rstcheck](https://github.com/myint/rstcheck) @@ -475,6 +527,7 @@ formatting. * [rpmlint](https://github.com/rpm-software-management/rpmlint) :warning: (see `:help ale-integration-spec`) * Ruby * [brakeman](http://brakemanscanner.org/) :floppy_disk: + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [debride](https://github.com/seattlerb/debride) * [prettier](https://github.com/prettier/plugin-ruby) * [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) :floppy_disk: @@ -487,6 +540,7 @@ formatting. * [standardrb](https://github.com/testdouble/standard) * Rust * [cargo](https://github.com/rust-lang/cargo) :floppy_disk: (see `:help ale-integration-rust` for configuration instructions) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [rls](https://github.com/rust-lang-nursery/rls) :warning: * [rust-analyzer](https://github.com/rust-analyzer/rust-analyzer) :warning: * [rustc](https://www.rust-lang.org/) :warning: @@ -497,6 +551,7 @@ formatting. * [sass-lint](https://www.npmjs.com/package/sass-lint) * [stylelint](https://github.com/stylelint/stylelint) * Scala + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [fsc](https://www.scala-lang.org/old/sites/default/files/linuxsoft_archives/docu/files/tools/fsc.html) * [metals](https://scalameta.org/metals/) * [sbtserver](https://www.scala-sbt.org/1.x/docs/sbt-server.html) @@ -517,6 +572,7 @@ formatting. * [solhint](https://github.com/protofire/solhint) * [solium](https://github.com/duaraghav8/Solium) * SQL + * [dprint](https://dprint.dev) * [pgformatter](https://github.com/darold/pgFormatter) * [sql-lint](https://github.com/joereynolds/sql-lint) * [sqlfmt](https://github.com/jackc/sqlfmt) @@ -531,6 +587,7 @@ formatting. * [svelteserver](https://github.com/sveltejs/language-tools/tree/master/packages/language-server) * Swift * [Apple swift-format](https://github.com/apple/swift-format) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [sourcekit-lsp](https://github.com/apple/sourcekit-lsp) * [swiftformat](https://github.com/nicklockwood/SwiftFormat) * [swiftlint](https://github.com/realm/SwiftLint) @@ -539,17 +596,20 @@ formatting. * Tcl * [nagelfar](http://nagelfar.sourceforge.net) :floppy_disk: * Terraform + * [checkov](https://github.com/bridgecrewio/checkov) * [terraform](https://github.com/hashicorp/terraform) * [terraform-fmt-fixer](https://github.com/hashicorp/terraform) * [terraform-ls](https://github.com/hashicorp/terraform-ls) * [terraform-lsp](https://github.com/juliosueiras/terraform-lsp) * [tflint](https://github.com/wata727/tflint) * Texinfo - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [proselint](http://proselint.com/) * [write-good](https://github.com/btford/write-good) * Text - * [alex](https://github.com/wooorm/alex) :warning: :floppy_disk: + * [alex](https://github.com/get-alex/alex) :warning: + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [languagetool](https://languagetool.org/) :floppy_disk: * [proselint](http://proselint.com/) :warning: * [redpen](http://redpen.cc/) :warning: @@ -559,8 +619,12 @@ formatting. * Thrift * [thrift](http://thrift.apache.org/) * [thriftcheck](https://github.com/pinterest/thriftcheck) +* TOML + * [dprint](https://dprint.dev) * TypeScript + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [deno](https://deno.land/) + * [dprint](https://dprint.dev/) * [eslint](http://eslint.org/) * [fecs](http://fecs.baidu.com/) * [prettier](https://github.com/prettier/prettier) @@ -589,23 +653,30 @@ formatting. * [vimls](https://github.com/iamcco/vim-language-server) * [vint](https://github.com/Kuniwak/vint) * Vim help - * [alex](https://github.com/wooorm/alex) :warning: :floppy_disk: + * [alex](https://github.com/get-alex/alex) :warning: * [proselint](http://proselint.com/) :warning: * [write-good](https://github.com/btford/write-good) :warning: * Vue + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [prettier](https://github.com/prettier/prettier) * [vls](https://github.com/vuejs/vetur/tree/master/server) + * [volar](https://github.com/johnsoncodehk/volar) +* WGSL + * [naga](https://github.com/gfx-rs/naga) * XHTML - * [alex](https://github.com/wooorm/alex) :floppy_disk: + * [alex](https://github.com/get-alex/alex) + * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [proselint](http://proselint.com/) * [write-good](https://github.com/btford/write-good) * XML * [xmllint](http://xmlsoft.org/xmllint.html) * YAML - * [circleci](https://circleci.com/docs/2.0/local-cli) :floppy_disk: + * [actionlint](https://github.com/rhysd/actionlint) :warning: + * [circleci](https://circleci.com/docs/2.0/local-cli) :floppy_disk: :warning: * [prettier](https://github.com/prettier/prettier) * [spectral](https://github.com/stoplightio/spectral) - * [swaglint](https://github.com/byCedric/swaglint) + * [swaglint](https://github.com/byCedric/swaglint) :warning: + * [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) * [yamlfix](https://lyz-code.github.io/yamlfix) * [yamllint](https://yamllint.readthedocs.io/) * YANG @@ -613,4 +684,5 @@ formatting. * Zeek * [zeek](http://zeek.org) :floppy_disk: * Zig + * [zigfmt](https://github.com/ziglang/zig) * [zls](https://github.com/zigtools/zls) diff --git a/sources_non_forked/bufexplorer/README.md b/sources_non_forked/bufexplorer/README.md index 6faed6bc..4dbe4f88 100644 --- a/sources_non_forked/bufexplorer/README.md +++ b/sources_non_forked/bufexplorer/README.md @@ -14,7 +14,7 @@ With bufexplorer, you can quickly and easily switch between buffers by using the `\bv` force vertical split open -Once the bufexplorer window is open you can use the normal movement keys (hjkl) to move around and then use or to select the buffer you would like to open. If you would like to have the selected buffer opened in a new tab, simply press either or 't'. Please note that when opening a buffer in a tab, that if the buffer is already in another tab, bufexplorer can switch to that tab automatically for you if you would like. More about that in the supplied VIM help. +Once the bufexplorer window is open you can use the normal movement keys (hjkl) to move around and then use `` or `` to select the buffer you would like to open. If you would like to have the selected buffer opened in a new tab, simply press either `` or `t`. Please note that when opening a buffer in a tab, that if the buffer is already in another tab, bufexplorer can switch to that tab automatically for you if you would like. More about that in the supplied VIM help. Bufexplorer also offers various options including: - Display the list of buffers in various sort orders including: @@ -69,7 +69,7 @@ This plugin can also be found at http://www.vim.org/scripts/script.php?script_id git clone https://github.com/jlanzarotta/bufexplorer.git ~/.vim/bundle/bufexplorer.vim ## License -Copyright (c) 2001-2021, Jeff Lanzarotta +Copyright (c) 2001-2022, Jeff Lanzarotta All rights reserved. diff --git a/sources_non_forked/bufexplorer/doc/bufexplorer.txt b/sources_non_forked/bufexplorer/doc/bufexplorer.txt index fd52fb58..b3b46cc7 100644 --- a/sources_non_forked/bufexplorer/doc/bufexplorer.txt +++ b/sources_non_forked/bufexplorer/doc/bufexplorer.txt @@ -1,7 +1,7 @@ -*bufexplorer.txt* Buffer Explorer Last Change: 08 Dec 2018 +*bufexplorer.txt* Buffer Explorer Last Change: 02 May 2022 Buffer Explorer *buffer-explorer* *bufexplorer* - Version 7.4.21 + Version 7.4.24 Plugin for easily exploring (or browsing) Vim|:buffers|. @@ -263,6 +263,17 @@ The default is 1. =============================================================================== CHANGE LOG *bufexplorer-changelog* +7.4.23 January 23, 2022 + - Merged in changes from benoit-pierre that fixes an error thrown when vim + is in read-only mode. + - Merged in changes from tartansandal that implements the use of an + independent variable to track window splitting since s:splitMode != '' + no longer implies that a split was triggered. +7.4.22 January 5,2022 + - Merged in change from nadean that fixed an issue that if you use either + split mode, you could no longer use the regular non-split mode. This was + because the split mode set s:splitMode and that variable was never reset + to "" to allow you run without split mode. 7.4.21 December 8, 2018 - Merged in changes from adelarsq that introduced ryanoasis/vim-devicons support. If the global g:loaded_webdevicons has been set, bufexplorer @@ -774,7 +785,7 @@ won't list names. =============================================================================== COPYRIGHT *bufexplorer-copyright* -Copyright (c) 2001-2017, Jeff Lanzarotta +Copyright (c) 2001-2022, Jeff Lanzarotta All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/sources_non_forked/bufexplorer/plugin/bufexplorer.vim b/sources_non_forked/bufexplorer/plugin/bufexplorer.vim index 6a7ef4f0..87544160 100644 --- a/sources_non_forked/bufexplorer/plugin/bufexplorer.vim +++ b/sources_non_forked/bufexplorer/plugin/bufexplorer.vim @@ -1,5 +1,5 @@ "============================================================================ -" Copyright: Copyright (c) 2001-2018, Jeff Lanzarotta +" Copyright: Copyright (c) 2001-2022, Jeff Lanzarotta " All rights reserved. " " Redistribution and use in source and binary forms, with or @@ -35,8 +35,8 @@ " EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. " Name Of File: bufexplorer.vim " Description: Buffer Explorer Vim Plugin -" Maintainer: Jeff Lanzarotta (delux256-vim at outlook dot com) -" Last Changed: Saturday, 08 December 2018 +" Maintainer: Jeff Lanzarotta (my name at gmail dot com) +" Last Changed: Thursday, 02 May 2022 " Version: See g:bufexplorer_version for version number. " Usage: This file should reside in the plugin directory and be " automatically sourced. @@ -74,7 +74,7 @@ endif "1}}} " Version number -let g:bufexplorer_version = "7.4.21" +let g:bufexplorer_version = "7.4.24" " Plugin Code {{{1 " Check for Vim version {{{2 @@ -132,6 +132,7 @@ let s:originBuffer = 0 let s:running = 0 let s:sort_by = ["number", "name", "fullpath", "mru", "extension"] let s:splitMode = "" +let s:didSplit = 0 let s:types = {"fullname": ':p', "path": ':p:h', "relativename": ':~:.', "relativepath": ':~:.:h', "shortname": ':t'} " Setup the autocommands that handle the MRUList and other stuff. {{{2 @@ -312,7 +313,7 @@ endfunction " ShouldIgnore {{{2 function! s:ShouldIgnore(buf) " Ignore temporary buffers with buftype set. - if empty(getbufvar(a:buf, "&buftype") == 0) + if empty(getbufvar(a:buf, "&buftype")) == 0 return 1 endif @@ -361,6 +362,7 @@ function! s:Cleanup() let s:running = 0 let s:splitMode = "" + let s:didSplit = 0 delmarks! endfunction @@ -392,12 +394,14 @@ endfunction function! BufExplorerHorizontalSplit() let s:splitMode = "sp" execute "BufExplorer" + let s:splitMode = "" endfunction " BufExplorerVerticalSplit {{{2 function! BufExplorerVerticalSplit() let s:splitMode = "vsp" execute "BufExplorer" + let s:splitMode = "" endfunction " ToggleBufExplorer {{{2 @@ -451,6 +455,9 @@ function! BufExplorer() " Restore the original settings. let [&splitbelow, &splitright] = [_splitbelow, _splitright] + + " Remember that a split was triggered + let s:didSplit = 1 endif if !exists("b:displayMode") || b:displayMode != "winmanager" @@ -473,6 +480,7 @@ function! s:DisplayBufferList() " the buffer using CTRL-^. setlocal buftype=nofile setlocal modifiable + setlocal noreadonly setlocal noswapfile setlocal nowrap @@ -1036,7 +1044,7 @@ function! s:Close() endif " If we needed to split the main window, close the split one. - if s:splitMode != "" && bufwinnr(s:originBuffer) != -1 + if s:didSplit == 1 && bufwinnr(s:originBuffer) != -1 execute "wincmd c" endif diff --git a/sources_non_forked/ctrlp.vim/autoload/ctrlp.vim b/sources_non_forked/ctrlp.vim/autoload/ctrlp.vim index 38b6ed8b..600ffa2d 100644 --- a/sources_non_forked/ctrlp.vim/autoload/ctrlp.vim +++ b/sources_non_forked/ctrlp.vim/autoload/ctrlp.vim @@ -95,7 +95,7 @@ let [s:pref, s:bpref, s:opts, s:new_opts, s:lc_opts] = \ 'brief_prompt': ['s:brfprt', 0], \ 'match_current_file': ['s:matchcrfile', 0], \ 'match_natural_name': ['s:matchnatural', 0], - \ 'compare_lim': ['s:compare_lim', 3000], + \ 'compare_lim': ['s:compare_lim', 0], \ 'bufname_mod': ['s:bufname_mod', ':t'], \ 'bufpath_mod': ['s:bufpath_mod', ':~:.:h'], \ 'formatline_func': ['s:flfunc', 's:formatline(v:val)'], @@ -330,7 +330,11 @@ fu! s:Open() endf fu! s:Close() - cal s:async_glob_abort() + if has('patch-9.0.0115') && exists('s:cmdheight') + let &cmdheight = s:cmdheight + unlet s:cmdheight + en + cal s:async_glob_abort(0) cal s:buffunc(0) if winnr('$') == 1 bw! @@ -396,7 +400,7 @@ fu! ctrlp#files() en " Remove base directory cal ctrlp#rmbasedir(g:ctrlp_allfiles) - if len(g:ctrlp_allfiles) <= s:compare_lim + if !s:compare_lim || len(g:ctrlp_allfiles) <= s:compare_lim cal sort(g:ctrlp_allfiles, 'ctrlp#complen') en cal s:writecache(cafile) @@ -425,13 +429,17 @@ fu! s:CloseCustomFuncs() en endf -if has('patch-8.2-0995') +if has('patch-8.2-0995') && get(g:, 'ctrlp_use_readdir', 1) fu! s:GlobPath(dirs, depth) let entries = [] - for e in split(a:dirs, ',') - sil let files = readdir(e, '1', {'sort': 'none'}) - if !s:showhidden | cal filter(files, 'v:val[0] != "."') | en - let entries += map(files, 'e.s:lash.v:val') + let dirs = substitute(a:dirs, '\\\([%# ]\)', '\1', 'g') + for e in split(dirs, ',') + try + let files = readdir(e, '1', {'sort': 'none'}) + if !s:showhidden | cal filter(files, 'v:val[0] != "."') | en + let entries += map(files, 'e.s:lash.v:val') + cat + endt endfo let [dnf, depth] = [ctrlp#dirnfile(entries), a:depth + 1] if &wig != '' | cal filter(dnf[1], 'glob(v:val) != ""') | en @@ -487,10 +495,12 @@ fu! s:async_glob_on_exit(...) en endf -fu! s:async_glob_abort() +fu! s:async_glob_abort(upd) cal s:stop_job_if_exists() cal s:stop_timer_if_exists() - cal s:ForceUpdate() + if a:upd + cal s:ForceUpdate() + en endf fu! s:stop_timer_if_exists() @@ -750,6 +760,9 @@ fu! s:Render(lines, pat) en if s:mw_order == 'btt' | cal reverse(lines) | en let s:lines = copy(lines) + if s:nolim == 0 && len(lines) > height + let lines = lines[:height-1] + en if has('patch-8.1-0') && s:flfunc ==# 's:formatline(v:val)' cal map(lines, function('s:formatline2', [s:curtype()])) el @@ -1094,7 +1107,7 @@ fu! s:MapSpecs() if !( exists('s:smapped') && s:smapped == s:bufnr ) " Correct arrow keys in terminal if ( has('termresponse') && v:termresponse =~ "\" ) - \ || &term =~? '\vxterm|','\B ','\C ','\D '] exe s:lcmap.' ['.each endfo @@ -1151,7 +1164,7 @@ fu! s:ToggleByFname() endf fu! s:ToggleType(dir) - cal s:async_glob_abort() + cal s:async_glob_abort(1) let max = len(g:ctrlp_ext_vars) + len(s:coretypes) - 1 let next = s:walker(max, s:itemtype, a:dir) cal ctrlp#setlines(next) @@ -1761,16 +1774,22 @@ fu! s:formatline2(ct, key, str) let str .= printf(' %s', parts[3]) en en + retu s:lineprefix.str en - let cond = a:ct != 'buf' &&s:ispath && ( s:winw - 4 ) < s:strwidth(str) + let cond = s:ispath && ( s:winw - 4 ) < strchars(str) retu s:lineprefix.( cond ? s:pathshorten(str) : str ) endf - -fu! s:pathshorten(str) - retu matchstr(a:str, '^.\{9}').'...' - \ .matchstr(a:str, '.\{'.( s:winw - 16 ).'}$') -endf +if exists('*strchars') && exists('*strcharpart') + fu! s:pathshorten(str) + retu strcharpart(a:str, 0, 9).'...'.strcharpart(a:str, strchars(a:str) - s:winw + 16) + endf +el + fu! s:pathshorten(str) + retu matchstr(a:str, '^.\{9}').'...' + \ .matchstr(a:str, '.\{'.( s:winw - 16 ).'}$') + endf +en fu! s:offset(lines, height) let s:offset = s:mw_order == 'btt' ? ( a:height - s:res_count ) : 0 @@ -2713,6 +2732,15 @@ fu! ctrlp#nosy() retu !( has('syntax') && exists('g:syntax_on') ) endf +fu! s:hiupdate() + for [ke, va] in items(s:hlgrps) + let ke = 'CtrlP' . ke + if hlexists(ke) + exe 'hi link' ke va + en + endfo +endf + fu! ctrlp#hicheck(grp, defgrp) if !hlexists(a:grp) exe 'hi link' a:grp a:defgrp @@ -2821,6 +2849,11 @@ fu! ctrlp#init(type, ...) if shouldExitSingle && s:ExitIfSingleCandidate() retu 0 en + + if has('patch-9.0.0115') && &cmdheight == 0 + let s:cmdheight = &cmdheight + set cmdheight=1 + en cal s:BuildPrompt(1) if s:keyloop | cal s:KeyLoop() | en retu 1 @@ -2846,6 +2879,7 @@ if has('autocmd') au BufEnter ControlP cal s:checkbuf() au BufLeave ControlP noa cal s:Close() au VimLeavePre * cal s:leavepre() + au ColorScheme * cal s:hiupdate() aug END en diff --git a/sources_non_forked/ctrlp.vim/autoload/ctrlp/buffertag.vim b/sources_non_forked/ctrlp.vim/autoload/ctrlp/buffertag.vim index f36a5cfc..4f75e6d3 100644 --- a/sources_non_forked/ctrlp.vim/autoload/ctrlp/buffertag.vim +++ b/sources_non_forked/ctrlp.vim/autoload/ctrlp/buffertag.vim @@ -203,10 +203,14 @@ endf fu! s:parseline(line) let vals = matchlist(a:line, - \ '\v^([^\t]+)\t(.+)\t[?/]\^?(.{-1,})\$?[?/]\;\"\t(.+)\tline(no)?\:(\d+)') + \ '\v^([^\t]+)\t(.+)\t[?/]\^?(.{-1,})\$?[?/]\;\"\t(.+)\tline(no)?\:(\d+)\t?([^\t]*)') if vals == [] | retu '' | en let [bufnr, bufname] = [bufnr('^'.vals[2].'$'), fnamemodify(vals[2], ':p:t')] - retu vals[1].' '.vals[4].'|'.bufnr.':'.bufname.'|'.vals[6].'| '.vals[3] + if len(vals) > 7 && vals[7] != '' + retu vals[1].' '.vals[4].'|'.bufnr.':'.bufname.'|'.vals[6].'|'.vals[7].'| '.vals[3] + else + retu vals[1].' '.vals[4].'|'.bufnr.':'.bufname.'|'.vals[6].'| '.vals[3] + en endf fu! s:syntax() @@ -249,7 +253,7 @@ endf fu! ctrlp#buffertag#accept(mode, str) let vals = matchlist(a:str, - \ '\v^[^\t]+\t+[^\t|]+\|(\d+)\:[^\t|]+\|(\d+)\|\s(.+)$') + \ '\v^[^\t]+\t+[^\t|]+\|(\d+)\:[^\t|]+\|(\d+)%(\|[^\t|]+)?\|\s(.+)$') let bufnr = str2nr(get(vals, 1)) if bufnr cal ctrlp#acceptfile(a:mode, bufnr) diff --git a/sources_non_forked/ctrlp.vim/doc/ctrlp.cnx b/sources_non_forked/ctrlp.vim/doc/ctrlp.cnx index 3cd91399..74379d48 100644 --- a/sources_non_forked/ctrlp.vim/doc/ctrlp.cnx +++ b/sources_non_forked/ctrlp.vim/doc/ctrlp.cnx @@ -241,22 +241,8 @@ OPTIONS *ctrlp-options* < 注意: 当命令使用 |g:ctrlp_user_command| 定义时该选项无效。 - *'ctrlp-wildignore'* -你可以使用Vim的 |'wildignore'| 来从结果集中排序文件或目录。 -例子: > - " 排除版本控制文件 - set wildignore+=*/.git/*,*/.hg/*,*/.svn/* " Linux/MacOSX - set wildignore+=*\\.git\\*,*\\.hg\\*,*\\.svn\\* " Windows ('noshellslash') -< -注意 #1: 每个目录设置前的字符 `*/` 是必须的。 - -注意 #2: |wildignore| 影响 |expand()| , |globpath()| 和 |glob()| 的结果,这些函数被很 -多插件用来在系统中执行查找。(例如和版本控制系统有关的插件在查找.git/、.hg/等, -一些其他插件用来在Windows上查找外部的*.exe工具),所以要修改 |wildignore| 时请先 -考虑清楚。 - *'g:ctrlp_custom_ignore'* -作为对 |'wildignore'| 和 |g:ctrlp_show_hidden| 的补充,用来设置你只是想在CtrlP中隐藏的文件和目录。使用正 +除了 |g:ctrlp_show_hidden|,你可以用这个选项设置你想在CtrlP中隐藏的文件和目录。使用正 则表达式来指定匹配模式: > let g:ctrlp_custom_ignore = '' < @@ -274,9 +260,7 @@ OPTIONS *ctrlp-options* \ 'func': 'some#custom#match_function' \ } < -注意 #1: 默认情况下, |wildignore| 和 |g:ctrlp_custom_ignore| 只在 |globpath()| 被用 -来扫描文件的情况下使用,这样这些选项在那些使用 |g:ctrlp_user_command| 定义的命 -令中不会生效。 +注意 #1: |g:ctrlp_custom_ignore| 在已经使用 |g:ctrlp_user_command| 的时候不会生效。 注意 #2: 当改变选项的变量类型时,记得先 |:unlet| ,或者重启Vim来避免这个错误: "E706: Variable type mismatch" 。 @@ -285,6 +269,9 @@ OPTIONS *ctrlp-options* 自动加载的函数。函数必须接受两个参数,要匹配的条目和接受的类型,类型可以是目 录、文件和链接。如果条目被忽略,函数需要返回1,反之,返回0。 +注意 #4: 如果设置 |g:ctrlp_use_readdir| 为0,你可以使用 Vim 的 |'wildignore'| +来将文件和目录排除出搜索结果。 + *'g:ctrlp_max_files'* 扫描文件的最大数量,设置为0时不进行限制: > let g:ctrlp_max_files = 10000 diff --git a/sources_non_forked/ctrlp.vim/doc/ctrlp.txt b/sources_non_forked/ctrlp.vim/doc/ctrlp.txt index 82eecfcb..da1d5153 100644 --- a/sources_non_forked/ctrlp.vim/doc/ctrlp.txt +++ b/sources_non_forked/ctrlp.vim/doc/ctrlp.txt @@ -240,23 +240,8 @@ Set this to 1 if you want CtrlP to scan for dotfiles and dotdirs: > Note: does not apply when a command defined with |g:ctrlp_user_command| is being used. - *'ctrlp-wildignore'* -You can use Vim's |'wildignore'| to exclude files and directories from the -results. -Examples: > - " Excluding version control directories - set wildignore+=*/.git/*,*/.hg/*,*/.svn/* " Linux/MacOSX - set wildignore+=*\\.git\\*,*\\.hg\\*,*\\.svn\\* " Windows ('noshellslash') -< -Note #1: the `*/` in front of each directory glob is required. - -Note #2: |wildignore| influences the result of |expand()|, |globpath()| and -|glob()| which many plugins use to find stuff on the system (e.g. VCS related -plugins look for .git/, .hg/,... some other plugins look for external *.exe -tools on Windows). So be a little mindful of what you put in your |wildignore|. - *'g:ctrlp_custom_ignore'* -In addition to |'wildignore'| and |g:ctrlp_show_hidden|, use this for files +In addition to |g:ctrlp_show_hidden|, use this for files and directories you want only CtrlP to not show. Use regexp to specify the patterns: > let g:ctrlp_custom_ignore = '' @@ -275,8 +260,7 @@ Examples: > \ 'func': 'some#custom#match_function' \ } < -Note #1: by default, |wildignore| and |g:ctrlp_custom_ignore| only apply when -|globpath()| is used to scan for files, thus these options do not apply when a +Note #1: |g:ctrlp_custom_ignore| does not apply when a command defined with |g:ctrlp_user_command| is being used. Note #2: when changing the option's variable type, remember to |:unlet| it @@ -288,6 +272,9 @@ recommended here. The function must take 2 parameters, the item to match and its type. The type will be "dir", "file", or "link". The function must return 1 if the item should be ignored, 0 otherwise. +Note #4: when |g:ctrlp_use_readdir| is set to 0, you can also use Vim's |'wildignore'| +to exclude files and directories. + *'g:ctrlp_max_files'* The maximum number of files to scan, set to 0 for no limit: > let g:ctrlp_max_files = 10000 @@ -846,6 +833,13 @@ Example: > *'g:ctrlp_brief_prompt'* When this is set to 1, the on empty prompt exit CtrlP. + *'g:ctrlp_use_readdir'* +Unlike kien/ctrlp.vim, ctrlpvim/ctrlp.vim uses readdir() instead of globpath() +for speed. Set this option to 0 if you want to revert to the original +behavior. +Example: > + let g:ctrlp_use_readdir = 0 +< *ctrlp-default-value* Otherwise, you can use below to change default value. Example: > @@ -853,6 +847,17 @@ Example: > This is possible to change no-limit mode for match type "path". + *ctrlp_compare_lim* +If your search directory has more number of files than this limit, no sorting +will be performed for the first readout. You can improve CtrlP performance by +setting this to a proper value, but no sorting on the first readout can reduce +the quality of fuzzy finding results. +Example: + let g:ctrlp_compare_lim = 100 + +Set the value to 0 for unlimited sorting. Default is 0. + + =============================================================================== COMMANDS *ctrlp-commands* diff --git a/sources_non_forked/dracula/README.md b/sources_non_forked/dracula/README.md index cea8721e..d84d6db8 100644 --- a/sources_non_forked/dracula/README.md +++ b/sources_non_forked/dracula/README.md @@ -20,6 +20,12 @@ This theme is maintained by the following person(s) and a bunch of | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | [Derek S.](https://github.com/dsifford) | [David Knoble](https://github.com/benknoble) | +## Community + +- [Twitter](https://twitter.com/draculatheme) - Best for getting updates about themes and new stuff. +- [GitHub](https://github.com/dracula/dracula-theme/discussions) - Best for asking questions and discussing issues. +- [Discord](https://draculatheme.com/discord-invite) - Best for hanging out with the community. + ## License [MIT License](./LICENSE) diff --git a/sources_non_forked/dracula/after/plugin/dracula.vim b/sources_non_forked/dracula/after/plugin/dracula.vim index b07898c5..3fd3c32f 100644 --- a/sources_non_forked/dracula/after/plugin/dracula.vim +++ b/sources_non_forked/dracula/after/plugin/dracula.vim @@ -99,5 +99,43 @@ if exists('g:loaded_nvim_treesitter') hi! link TSTagAttribute DraculaGreenItalic endif " }}} +" nvim-cmp: {{{ +" A completion engine plugin for neovim written in Lua. +" https://github.com/hrsh7th/nvim-cmp +if exists('g:loaded_cmp') + hi! link CmpItemAbbrDeprecated DraculaError + + hi! link CmpItemAbbrMatch DraculaCyan + hi! link CmpItemAbbrMatchFuzzy DraculaCyan + + hi! link CmpItemKindText DraculaFg + hi! link CmpItemKindMethod Function + hi! link CmpItemKindFunction Function + hi! link CmpItemKindConstructor DraculaCyan + hi! link CmpItemKindField DraculaOrange + hi! link CmpItemKindVariable DraculaPurpleItalic + hi! link CmpItemKindClass DraculaCyan + hi! link CmpItemKindInterface DraculaCyan + hi! link CmpItemKindModule DraculaYellow + hi! link CmpItemKindProperty DraculaPink + hi! link CmpItemKindUnit DraculaFg + hi! link CmpItemKindValue DraculaYellow + hi! link CmpItemKindEnum DraculaPink + hi! link CmpItemKindKeyword DraculaPink + hi! link CmpItemKindSnippet DraculaFg + hi! link CmpItemKindColor DraculaYellow + hi! link CmpItemKindFile DraculaYellow + hi! link CmpItemKindReference DraculaOrange + hi! link CmpItemKindFolder DraculaYellow + hi! link CmpItemKindEnumMember DraculaPurple + hi! link CmpItemKindConstant DraculaPurple + hi! link CmpItemKindStruct DraculaPink + hi! link CmpItemKindEvent DraculaFg + hi! link CmpItemKindOperator DraculaPink + hi! link CmpItemKindTypeParameter DraculaCyan + + hi! link CmpItemMenu Comment +endif +" }}} " vim: fdm=marker ts=2 sts=2 sw=2 fdl=0: diff --git a/sources_non_forked/dracula/colors/dracula.vim b/sources_non_forked/dracula/colors/dracula.vim index 224d5a65..67d36f4b 100644 --- a/sources_non_forked/dracula/colors/dracula.vim +++ b/sources_non_forked/dracula/colors/dracula.vim @@ -194,6 +194,7 @@ call s:h('DraculaInfoLine', s:none, s:none, [s:attrs.undercurl], s:cyan) call s:h('DraculaTodo', s:cyan, s:none, [s:attrs.bold, s:attrs.inverse]) call s:h('DraculaSearch', s:green, s:none, [s:attrs.inverse]) call s:h('DraculaBoundary', s:comment, s:bgdark) +call s:h('DraculaWinSeparator', s:comment, s:bgdark) call s:h('DraculaLink', s:cyan, s:none, [s:attrs.underline]) call s:h('DraculaDiffChange', s:orange, s:none) @@ -244,7 +245,7 @@ hi! link TabLine DraculaBoundary hi! link TabLineFill DraculaBgDark hi! link TabLineSel Normal hi! link Title DraculaGreenBold -hi! link VertSplit DraculaBoundary +hi! link VertSplit DraculaWinSeparator hi! link Visual DraculaSelection hi! link VisualNOS Visual hi! link WarningMsg DraculaOrangeInverse @@ -262,14 +263,27 @@ if has('nvim') hi! link LspReferenceText DraculaSelection hi! link LspReferenceRead DraculaSelection hi! link LspReferenceWrite DraculaSelection - hi! link LspDiagnosticsDefaultInformation DraculaCyan - hi! link LspDiagnosticsDefaultHint DraculaCyan - hi! link LspDiagnosticsDefaultError DraculaError - hi! link LspDiagnosticsDefaultWarning DraculaOrange - hi! link LspDiagnosticsUnderlineError DraculaErrorLine - hi! link LspDiagnosticsUnderlineHint DraculaInfoLine - hi! link LspDiagnosticsUnderlineInformation DraculaInfoLine - hi! link LspDiagnosticsUnderlineWarning DraculaWarnLine + " Link old 'LspDiagnosticsDefault*' hl groups + " for backward compatibility with neovim v0.5.x + hi! link LspDiagnosticsDefaultInformation DiagnosticInfo + hi! link LspDiagnosticsDefaultHint DiagnosticHint + hi! link LspDiagnosticsDefaultError DiagnosticError + hi! link LspDiagnosticsDefaultWarning DiagnosticWarn + hi! link LspDiagnosticsUnderlineError DiagnosticUnderlineError + hi! link LspDiagnosticsUnderlineHint DiagnosticUnderlineHint + hi! link LspDiagnosticsUnderlineInformation DiagnosticUnderlineInfo + hi! link LspDiagnosticsUnderlineWarning DiagnosticUnderlineWarn + + hi! link DiagnosticInfo DraculaCyan + hi! link DiagnosticHint DraculaCyan + hi! link DiagnosticError DraculaError + hi! link DiagnosticWarn DraculaOrange + hi! link DiagnosticUnderlineError DraculaErrorLine + hi! link DiagnosticUnderlineHint DraculaInfoLine + hi! link DiagnosticUnderlineInfo DraculaInfoLine + hi! link DiagnosticUnderlineWarn DraculaWarnLine + + hi! link WinSeparator DraculaWinSeparator else hi! link SpecialKey DraculaPink endif diff --git a/sources_non_forked/editorconfig-vim/plugin/editorconfig.vim b/sources_non_forked/editorconfig-vim/plugin/editorconfig.vim index e491ce7c..d0deb265 100644 --- a/sources_non_forked/editorconfig-vim/plugin/editorconfig.vim +++ b/sources_non_forked/editorconfig-vim/plugin/editorconfig.vim @@ -368,7 +368,7 @@ endfunction " }}}2 function! s:ApplyConfig(config) abort " Set the buffer options {{{1 " Only process normal buffers (do not treat help files as '.txt' files) - if !empty(&buftype) + if index(['', 'acwrite'], &buftype) == -1 return endif diff --git a/sources_non_forked/editorconfig-vim/tests/plugin/spec/editorconfig_spec.rb b/sources_non_forked/editorconfig-vim/tests/plugin/spec/editorconfig_spec.rb index 0b3e654b..fd1644b0 100644 --- a/sources_non_forked/editorconfig-vim/tests/plugin/spec/editorconfig_spec.rb +++ b/sources_non_forked/editorconfig-vim/tests/plugin/spec/editorconfig_spec.rb @@ -18,7 +18,8 @@ def test_editorconfig(vim, file_name, expected_values) vim.edit(File.join(BASE_PATH, file_name)) expected_values.each do |key, val| - expect(vim.echo("&l:#{key}")).to eq(val) + vimval = vim.echo("&l:#{key}") + expect(vimval).to eq(val), "key #{key} had value #{vimval}, but I expected #{val}" end vim.command 'bd!' diff --git a/sources_non_forked/editorconfig-vim/tests/travis-test.sh b/sources_non_forked/editorconfig-vim/tests/travis-test.sh index 76022a03..ef886e6b 100644 --- a/sources_non_forked/editorconfig-vim/tests/travis-test.sh +++ b/sources_non_forked/editorconfig-vim/tests/travis-test.sh @@ -11,6 +11,17 @@ if [[ ( ! "${TEST_WHICH:-}" ) && "${1:-}" ]]; then export TEST_WHICH="$1" fi +if [[ ! "${TEST_WHICH:-}" ]]; then + cat < let g:lightline.colorscheme = 'default' diff --git a/sources_non_forked/lightline.vim/plugin/lightline.vim b/sources_non_forked/lightline.vim/plugin/lightline.vim index e1254b7b..1f5f998e 100644 --- a/sources_non_forked/lightline.vim/plugin/lightline.vim +++ b/sources_non_forked/lightline.vim/plugin/lightline.vim @@ -2,7 +2,7 @@ " Filename: plugin/lightline.vim " Author: itchyny " License: MIT License -" Last Change: 2020/11/05 20:05:40. +" Last Change: 2021/11/21 22:54:41. " ============================================================================= if exists('g:loaded_lightline') || v:version < 703 @@ -15,7 +15,7 @@ set cpo&vim augroup lightline autocmd! - autocmd WinEnter,BufEnter,BufDelete,SessionLoadPost,FileChangedShellPost * call lightline#update() + autocmd WinEnter,BufEnter,SessionLoadPost,FileChangedShellPost * call lightline#update() if !has('patch-8.1.1715') autocmd FileType qf call lightline#update() endif diff --git a/sources_non_forked/nerdtree/README.markdown b/sources_non_forked/nerdtree/README.markdown index 2de10d6c..27aa3148 100644 --- a/sources_non_forked/nerdtree/README.markdown +++ b/sources_non_forked/nerdtree/README.markdown @@ -1,3 +1,9 @@ +![Help Wanted](http://blog.ncce.org/wp-content/uploads/2013/12/help-wanted.jpg) + +**NERDTree** is on the lookout for a new maintainer. See [issue #1280](https://github.com/preservim/nerdtree/issues/1280) to submit your name for consideration. + +--- + # The NERDTree [![Vint](https://github.com/preservim/nerdtree/workflows/Vint/badge.svg)](https://github.com/preservim/nerdtree/actions?workflow=Vint) ## Introduction @@ -84,7 +90,7 @@ vim -u NONE -c "helptags ~/.vim/pack/vendor/start/nerdtree/doc" -c q After installing NERDTree, the best way to learn it is to turn on the Quick Help. Open NERDTree with the `:NERDTree` command, and press `?` to turn on the Quick Help, which will show you all the mappings and commands available in the NERDTree. Of course, your most complete source of information is the documentation: `:help NERDTree`. ## NERDTree Plugins -NERDTree can be extended with custom mappings and functions using its built-in API. The details of this API and are described in the included documentation. Several plugins have been written, and are available on Github for installation like any other plugin. The plugins in this list are maintained (or not) by their respective owners, and certain combinations may be incompatible. +NERDTree can be extended with custom mappings and functions using its built-in API. The details of this API are described in the included documentation. Several plugins have been written, and are available on Github for installation like any other plugin. The plugins in this list are maintained (or not) by their respective owners, and certain combinations may be incompatible. * [Xuyuanp/nerdtree-git-plugin](https://github.com/Xuyuanp/nerdtree-git-plugin): Shows Git status flags for files and folders in NERDTree. * [ryanoasis/vim-devicons](https://github.com/ryanoasis/vim-devicons): Adds filetype-specific icons to NERDTree files and folders, @@ -183,8 +189,8 @@ nnoremap :NERDTreeMirror:NERDTreeFocus ### How can I change the default arrows? ```vim -let g:NERDTreeDirArrowExpandable = '▸' -let g:NERDTreeDirArrowCollapsible = '▾' +let g:NERDTreeDirArrowExpandable = '?' +let g:NERDTreeDirArrowCollapsible = '?' ``` The preceding values are the non-Windows default arrow symbols. Setting these variables to empty strings will remove the arrows completely and shift the entire tree two character positions to the left. See `:h NERDTreeDirArrowExpandable` for more details. diff --git a/sources_non_forked/tlib/CHANGES.TXT b/sources_non_forked/tlib/CHANGES.TXT index 767ae5e4..e54e1007 100644 --- a/sources_non_forked/tlib/CHANGES.TXT +++ b/sources_non_forked/tlib/CHANGES.TXT @@ -907,3 +907,13 @@ version: "1.23" MD5 checksum: c4d6e018cbbd3b286a9b1648b748c1f3 version: "1.23" +version: '1.28' + - Remove unnecessary executable flags from files + - Merge pull request #28 from gbence/master + - Fix error E1208 raised by vim >=8.2.3141 + - Merge pull request #30 from stac47/fix_for_vim_8_2_3141 + - Fix win_id format mismatch on vim7 or bellow + - Merge pull request #37 from moodoofish/master + - tlib#number#ConvertBase: support base > 36 + SHA256 checksum: 666e632a1ebacebf6e774cdf5c541418343ce1a3949268685ebcb60e480b9f1d + diff --git a/sources_non_forked/tlib/autoload/tlib/number.vim b/sources_non_forked/tlib/autoload/tlib/number.vim index 54cddc57..8326b47a 100644 --- a/sources_non_forked/tlib/autoload/tlib/number.vim +++ b/sources_non_forked/tlib/autoload/tlib/number.vim @@ -1,17 +1,24 @@ " @Author: Tom Link (mailto:micathom AT gmail com?subject=[vim]) " @License: GPL (see http://www.gnu.org/licenses/gpl.txt) -" @Revision: 18 +" @Revision: 26 function! tlib#number#ConvertBase(num, base, ...) "{{{3 let rtype = a:0 >= 1 ? a:1 : 'string' - if a:base > 36 - throw 'tlib#number#ConvertBase: base > 36 is not supported' - endif " TLogVAR a:num, a:base, rtype + if a:base == 32 + let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" + elseif a:base == 63 || a:base == 64 + let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + elseif a:base == 85 + let chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~" + elseif a:base <= 62 + let chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + else + throw 'tlib#number#ConvertBase: base is not supported' + endif let rv = [] let num = 0.0 + a:num - let chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" while floor(num) > 0.0 let div = floor(num / a:base) let num1 = float2nr(num - a:base * div) diff --git a/sources_non_forked/tlib/autoload/tlib/win.vim b/sources_non_forked/tlib/autoload/tlib/win.vim index ee2ca00c..12ad7a0f 100644 --- a/sources_non_forked/tlib/autoload/tlib/win.vim +++ b/sources_non_forked/tlib/autoload/tlib/win.vim @@ -73,7 +73,11 @@ endif " Return vim code to jump back to the original window. function! tlib#win#SetById(win_id) "{{{3 if a:win_id != g:tlib#win#null_id - let win_id = tlib#win#GetID() + if g:tlib#win#use_winid + let win_id = tlib#win#GetID() + else + let win_id = tlib#win#GetID().win_id + endif call tlib#win#GotoID(a:win_id) return printf('call tlib#win#GotoID(%s)', win_id) " " TLogVAR a:winnr diff --git a/sources_non_forked/tlib/plugin/02tlib.vim b/sources_non_forked/tlib/plugin/02tlib.vim index 94a600f0..76800233 100644 --- a/sources_non_forked/tlib/plugin/02tlib.vim +++ b/sources_non_forked/tlib/plugin/02tlib.vim @@ -1,8 +1,8 @@ " @Author: Tom Link (micathom AT gmail com?subject=[vim]) " @Created: 2007-04-10. -" @Last Change: 2019-04-09. +" @Last Change: 2022-07-21. " @License: GPL (see http://www.gnu.org/licenses/gpl.txt) -" @Revision: 836 +" @Revision: 837 " @Website: http://www.vim.org/account/profile.php?user_id=4037 " GetLatestVimScripts: 1863 1 tlib.vim " tlib.vim -- Some utility functions @@ -14,7 +14,7 @@ if v:version < 700 "{{{2 echoerr "tlib requires Vim >= 7" finish endif -let g:loaded_tlib = 127 +let g:loaded_tlib = 128 let s:save_cpo = &cpo set cpo&vim diff --git a/sources_non_forked/typescript-vim/syntax/typescript.vim b/sources_non_forked/typescript-vim/syntax/typescript.vim index 474e2288..5ae37226 100644 --- a/sources_non_forked/typescript-vim/syntax/typescript.vim +++ b/sources_non_forked/typescript-vim/syntax/typescript.vim @@ -206,7 +206,7 @@ syntax keyword typescriptFuncKeyword function syn match typescriptBraces "[{}\[\]]" syn match typescriptParens "[()]" syn match typescriptEndColons "[;,]" -syn match typescriptLogicSymbols "\(&&\)\|\(||\)\|\(!\)" +syn match typescriptLogicSymbols "\(&&\)\|\(||\)\|\(??\)\|\(!\)" syn match typescriptOpSymbols "=\{1,3}\|!==\|!=\|<\|>\|>=\|<=\|++\|+=\|--\|-=" " typescriptFold Function {{{ @@ -226,9 +226,9 @@ syn region foldBraces start=/{/ skip=/\(\/\/.*\)\|\(\/.*\/\)/ end=/}/ transparen " Define the default highlighting. " For version 5.7 and earlier: only when not done already by this script " For version 5.8 and later: only when an item doesn't have highlighting yet -" For version 8.1.1486 and later: only when not done already by this script (need to override vim's new typescript support) +" For version 8.1.1486 and later, and nvim 0.5.0 and later: only when not done already by this script (need to override vim's new typescript support) if version >= 508 || !exists("did_typescript_syn_inits") - if version < 508 || has('patch-8.1.1486') + if version < 508 || has('patch-8.1.1486') || has('nvim-0.5.0') let did_typescript_syn_inits = 1 command -nargs=+ HiLink hi link else diff --git a/sources_non_forked/vim-bundle-mako/README.md b/sources_non_forked/vim-bundle-mako/README.md index 037e44e4..1867831c 100644 --- a/sources_non_forked/vim-bundle-mako/README.md +++ b/sources_non_forked/vim-bundle-mako/README.md @@ -12,6 +12,7 @@ Useful configuration variables: detection. * `g:mako_default_outer_lang`: if ftdetect cannot detect the "outer" filetype of the file, this sets the default filetype used. If not set, defaults to "html". +* `g:mako_extension`: set to the default string (with leading dot). Default is ".mako" About mako: http://www.makotemplates.org/ diff --git a/sources_non_forked/vim-bundle-mako/ftdetect/mako.vim b/sources_non_forked/vim-bundle-mako/ftdetect/mako.vim index 3051a431..49b7be04 100644 --- a/sources_non_forked/vim-bundle-mako/ftdetect/mako.vim +++ b/sources_non_forked/vim-bundle-mako/ftdetect/mako.vim @@ -1,11 +1,14 @@ if !exists("g:mako_detect_lang_from_ext") let g:mako_detect_lang_from_ext = 1 endif +if !exists("g:mako_extension") + let g:mako_extension = ".mako" +endif if g:mako_detect_lang_from_ext - au BufNewFile *.*.mako execute "do BufNewFile filetypedetect " . expand(":r") | let b:mako_outer_lang = &filetype + exe 'au BufNewFile *.*' . g:mako_extension . ' execute "do BufNewFile filetypedetect " . expand(":r") | let b:mako_outer_lang = &filetype' " it's important to get this before any of the normal BufRead autocmds execute " for this file, otherwise a mako tag at the start of the file can cause the " filetype to be set to mason - au BufReadPre *.*.mako execute "do BufRead filetypedetect " . expand(":r") | let b:mako_outer_lang = &filetype + exe 'au BufReadPre *.*' . g:mako_extension . ' execute "do BufRead filetypedetect " . expand(":r") | let b:mako_outer_lang = &filetype' endif -au BufRead,BufNewFile *.mako set filetype=mako +exe 'au BufRead,BufNewFile *' . g:mako_extension . ' set filetype=mako' diff --git a/sources_non_forked/vim-commentary/plugin/commentary.vim b/sources_non_forked/vim-commentary/plugin/commentary.vim index 2c81622a..da850a39 100644 --- a/sources_non_forked/vim-commentary/plugin/commentary.vim +++ b/sources_non_forked/vim-commentary/plugin/commentary.vim @@ -3,7 +3,7 @@ " Version: 1.3 " GetLatestVimScripts: 3695 1 :AutoInstall: commentary.vim -if exists("g:loaded_commentary") || v:version < 700 +if exists("g:loaded_commentary") || v:version < 703 finish endif let g:loaded_commentary = 1 @@ -115,9 +115,6 @@ if !hasmapto('Commentary') || maparg('gc','n') ==# '' nmap gc Commentary omap gc Commentary nmap gcc CommentaryLine - if maparg('c','n') ==# '' && !exists('v:operator') - nmap cgc ChangeCommentary - endif nmap gcu CommentaryCommentary endif diff --git a/sources_non_forked/vim-flake8/README.mdown b/sources_non_forked/vim-flake8/README.mdown index 338e4450..1d2d764d 100644 --- a/sources_non_forked/vim-flake8/README.mdown +++ b/sources_non_forked/vim-flake8/README.mdown @@ -88,11 +88,11 @@ To customize the gutter markers, set any of `flake8_error_marker`, `flake8_warni `flake8_pyflake_marker`, `flake8_complexity_marker`, `flake8_naming_marker`. Setting one to the empty string disables it. Ex.: - flake8_error_marker='EE' " set error marker to 'EE' - flake8_warning_marker='WW' " set warning marker to 'WW' - flake8_pyflake_marker='' " disable PyFlakes warnings - flake8_complexity_marker='' " disable McCabe complexity warnings - flake8_naming_marker='' " disable naming warnings + let g:flake8_error_marker='EE' " set error marker to 'EE' + let g:flake8_warning_marker='WW' " set warning marker to 'WW' + let g:flake8_pyflake_marker='' " disable PyFlakes warnings + let g:flake8_complexity_marker='' " disable McCabe complexity warnings + let g:flake8_naming_marker='' " disable naming warnings To customize the colors used for markers, define the highlight groups, `Flake8_Error`, `Flake8_Warning`, `Flake8_PyFlake`, `Flake8_Complexity`, `Flake8_Naming`: @@ -132,7 +132,7 @@ maximum line length default. This is a config setting that should be set in flake8 itself. (vim-flake8 "just" invokes it and deals with showing the output in Vim's quickfix window.) -To do so, put the following into your `~/.config/flake8` file: +To do so, put the following into a `.flake8` file at the root of your project: [flake8] max-line-length = 120 @@ -141,7 +141,7 @@ To do so, put the following into your `~/.config/flake8` file: History ------- 1.6: Deprecated configuring flake8 options through Vim settings. Instead, -advise users to use the `~/.config/flake8` config file. +advise users to use a `.flake8` config file in the root of your project. - Decprecated options: - `g:flake8_builtins` diff --git a/sources_non_forked/vim-fugitive/autoload/fugitive.vim b/sources_non_forked/vim-fugitive/autoload/fugitive.vim index 5366c489..167cfb6e 100644 --- a/sources_non_forked/vim-fugitive/autoload/fugitive.vim +++ b/sources_non_forked/vim-fugitive/autoload/fugitive.vim @@ -72,14 +72,31 @@ function! s:shellesc(arg) abort endif endfunction -let s:fnameescape = " \t\n*?[{`$\\%#'\"|!<" function! s:fnameescape(file) abort if type(a:file) == type([]) return join(map(copy(a:file), 's:fnameescape(v:val)')) - elseif exists('*fnameescape') - return fnameescape(a:file) else - return escape(a:file, s:fnameescape) + return fnameescape(a:file) + endif +endfunction + +function! fugitive#UrlDecode(str) abort + return substitute(a:str, '%\(\x\x\)', '\=iconv(nr2char("0x".submatch(1)), "utf-8", "latin1")', 'g') +endfunction + +function! s:UrlEncode(str) abort + return substitute(a:str, '[%#?&;+=\<> [:cntrl:]]', '\=printf("%%%02X", char2nr(submatch(0)))', 'g') +endfunction + +function! s:PathUrlEncode(str) abort + return substitute(a:str, '[%#?[:cntrl:]]', '\=printf("%%%02X", char2nr(submatch(0)))', 'g') +endfunction + +function! s:PathJoin(prefix, str) abort + if a:prefix =~# '://' + return a:prefix . s:PathUrlEncode(a:str) + else + return a:prefix . a:str endif endfunction @@ -88,8 +105,8 @@ function! s:throw(string) abort endfunction function! s:VersionCheck() abort - if v:version < 703 - return 'return ' . string('echoerr "fugitive: Vim 7.3 or newer required"') + if v:version < 704 + return 'return ' . string('echoerr "fugitive: Vim 7.4 or newer required"') elseif empty(fugitive#GitVersion()) let exe = get(s:GitCmd(), 0, '') if len(exe) && !executable(exe) @@ -139,19 +156,51 @@ function! s:Mods(mods, ...) abort endfunction if exists('+shellslash') + + let s:dir_commit_file = '\c^fugitive://\%(/[^/]\@=\)\=\(.\{-1,\}\)//\%(\(\x\{40,\}\|[0-3]\)\(/.*\)\=\)\=$' + function! s:Slash(path) abort return tr(a:path, '\', '/') endfunction + + function! s:VimSlash(path) abort + return tr(a:path, '\/', &shellslash ? '//' : '\\') + endfunction + else + + let s:dir_commit_file = '\c^fugitive://\(.\{-\}\)//\%(\(\x\{40,\}\|[0-3]\)\(/.*\)\=\)\=$' + function! s:Slash(path) abort return a:path endfunction + + function! s:VimSlash(path) abort + return a:path + endfunction + endif +function! s:AbsoluteVimPath(...) abort + if a:0 && type(a:1) == type('') + let path = a:1 + else + let path = bufname(a:0 && a:1 > 0 ? a:1 : '') + if getbufvar(a:0 && a:1 > 0 ? a:1 : '', '&buftype') !~# '^\%(nowrite\|acwrite\)\=$' + return path + endif + endif + if s:Slash(path) =~# '^/\|^\a\+:' + return path + else + return getcwd() . matchstr(getcwd(), '[\\/]') . path + endif +endfunction + function! s:Resolve(path) abort let path = resolve(a:path) if has('win32') - let path = FugitiveVimPath(fnamemodify(fnamemodify(path, ':h'), ':p') . fnamemodify(path, ':t')) + let path = s:VimSlash(fnamemodify(fnamemodify(path, ':h'), ':p') . fnamemodify(path, ':t')) endif return path endfunction @@ -163,13 +212,39 @@ endfunction function! s:cpath(path, ...) abort if s:FileIgnoreCase(0) - let path = FugitiveVimPath(tolower(a:path)) + let path = s:VimSlash(tolower(a:path)) else - let path = FugitiveVimPath(a:path) + let path = s:VimSlash(a:path) endif return a:0 ? path ==# s:cpath(a:1) : path endfunction +let s:quote_chars = { + \ "\007": 'a', "\010": 'b', "\011": 't', "\012": 'n', "\013": 'v', "\014": 'f', "\015": 'r', + \ '"': '"', '\': '\'} + +let s:unquote_chars = { + \ 'a': "\007", 'b': "\010", 't': "\011", 'n': "\012", 'v': "\013", 'f': "\014", 'r': "\015", + \ '"': '"', '\': '\'} + +function! s:Quote(string) abort + let string = substitute(a:string, "[\001-\037\"\\\177]", '\="\\" . get(s:quote_chars, submatch(0), printf("%03o", char2nr(submatch(0))))', 'g') + if string !=# a:string + return '"' . string . '"' + else + return string + endif +endfunction + +function! fugitive#Unquote(string) abort + let string = substitute(a:string, "\t*$", '', '') + if string =~# '^".*"$' + return substitute(string[1:-2], '\\\(\o\o\o\|.\)', '\=get(s:unquote_chars, submatch(1), iconv(nr2char("0" . submatch(1)), "utf-8", "latin1"))', 'g') + else + return string + endif +endfunction + let s:executables = {} function! s:executable(binary) abort @@ -195,22 +270,18 @@ function! s:TempScript(...) abort endfunction function! s:DoAutocmd(...) abort - if v:version >= 704 || (v:version == 703 && has('patch442')) - return join(map(copy(a:000), "'doautocmd ' . v:val"), '|') - elseif &modelines > 0 - return 'try|set modelines=0|' . join(map(copy(a:000), "'doautocmd ' . v:val"), '|') . '|finally|set modelines=' . &modelines . '|endtry' - else - return join(map(copy(a:000), "'doautocmd ' . v:val"), '|') - endif + return join(map(copy(a:000), "'doautocmd ' . v:val"), '|') endfunction -let s:nowait = v:version >= 704 ? '' : '' - function! s:Map(mode, lhs, rhs, ...) abort let maps = [] + let defer = a:0 && a:1 =~# '' || get(g:, 'fugitive_defer_to_existing_maps') + let flags = substitute(a:0 ? a:1 : '', '', '', '') . (a:rhs =~# '' ? '' : '