7d2b8ba6d2
Deleted dotfiles/.vim/plugged/ale/.github/ISSUE_TEMPLATE/config.yml, dotfiles/.vim/plugged/ale/.github/ISSUE_TEMPLATE/report-a-bug.md, dotfiles/.vim/plugged/ale/.github/ISSUE_TEMPLATE/suggest-a-new-linter-or-fixer.md, dotfiles/.vim/plugged/ale/.github/ISSUE_TEMPLATE/suggest-an-improvement.md, dotfiles/.vim/plugged/ale/.github/workflows/main.yml, dotfiles/.vim/plugged/ale/.github/CODE_OF_CONDUCT.md, dotfiles/.vim/plugged/ale/.github/CONTRIBUTING.md, dotfiles/.vim/plugged/ale/.github/PULL_REQUEST_TEMPLATE.md, dotfiles/.vim/plugged/ale/.github/stale.yml, dotfiles/.vim/plugged/ale/ale_linters/ada/adals.vim, dotfiles/.vim/plugged/ale/ale_linters/ada/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/ada/gcc.vim, dotfiles/.vim/plugged/ale/ale_linters/ansible/ansible_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/apiblueprint/drafter.vim, dotfiles/.vim/plugged/ale/ale_linters/apkbuild/apkbuild_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/apkbuild/secfixes_check.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/languagetool.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/redpen.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/textlint.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/vale.vim, dotfiles/.vim/plugged/ale/ale_linters/asciidoc/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/asm/gcc.vim, dotfiles/.vim/plugged/ale/ale_linters/avra/avra.vim, dotfiles/.vim/plugged/ale/ale_linters/awk/gawk.vim, dotfiles/.vim/plugged/ale/ale_linters/bats/shellcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/bib/bibclean.vim, dotfiles/.vim/plugged/ale/ale_linters/bicep/bicep.vim, dotfiles/.vim/plugged/ale/ale_linters/bitbake/oelint_adv.vim, dotfiles/.vim/plugged/ale/ale_linters/c/cc.vim, dotfiles/.vim/plugged/ale/ale_linters/c/ccls.vim, dotfiles/.vim/plugged/ale/ale_linters/c/clangd.vim, dotfiles/.vim/plugged/ale/ale_linters/c/clangtidy.vim, dotfiles/.vim/plugged/ale/ale_linters/c/cppcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/c/cpplint.vim, dotfiles/.vim/plugged/ale/ale_linters/c/cquery.vim, dotfiles/.vim/plugged/ale/ale_linters/c/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/c/flawfinder.vim, dotfiles/.vim/plugged/ale/ale_linters/cairo/starknet.vim, dotfiles/.vim/plugged/ale/ale_linters/chef/cookstyle.vim, dotfiles/.vim/plugged/ale/ale_linters/chef/foodcritic.vim, dotfiles/.vim/plugged/ale/ale_linters/clojure/clj_kondo.vim, dotfiles/.vim/plugged/ale/ale_linters/clojure/joker.vim, dotfiles/.vim/plugged/ale/ale_linters/cloudformation/cfn_python_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/cmake/cmake_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/cmake/cmakelint.vim, dotfiles/.vim/plugged/ale/ale_linters/coffee/coffee.vim, dotfiles/.vim/plugged/ale/ale_linters/coffee/coffeelint.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/cc.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/ccls.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/clangcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/clangd.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/clangtidy.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/clazy.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/cppcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/cpplint.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/cquery.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/cpp/flawfinder.vim, dotfiles/.vim/plugged/ale/ale_linters/crystal/ameba.vim, dotfiles/.vim/plugged/ale/ale_linters/crystal/crystal.vim, dotfiles/.vim/plugged/ale/ale_linters/cs/csc.vim, dotfiles/.vim/plugged/ale/ale_linters/cs/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/cs/mcs.vim, dotfiles/.vim/plugged/ale/ale_linters/cs/mcsc.vim, dotfiles/.vim/plugged/ale/ale_linters/css/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/css/csslint.vim, dotfiles/.vim/plugged/ale/ale_linters/css/fecs.vim, dotfiles/.vim/plugged/ale/ale_linters/css/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/css/vscodecss.vim, dotfiles/.vim/plugged/ale/ale_linters/cucumber/cucumber.vim, dotfiles/.vim/plugged/ale/ale_linters/cuda/clangd.vim, dotfiles/.vim/plugged/ale/ale_linters/cuda/nvcc.vim, dotfiles/.vim/plugged/ale/ale_linters/cypher/cypher_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/d/dls.vim, dotfiles/.vim/plugged/ale/ale_linters/d/dmd.vim, dotfiles/.vim/plugged/ale/ale_linters/dafny/dafny.vim, dotfiles/.vim/plugged/ale/ale_linters/dart/analysis_server.vim, dotfiles/.vim/plugged/ale/ale_linters/dart/dart_analyze.vim, dotfiles/.vim/plugged/ale/ale_linters/dart/language_server.vim, dotfiles/.vim/plugged/ale/ale_linters/desktop/desktop_file_validate.vim, dotfiles/.vim/plugged/ale/ale_linters/dockerfile/dockerfile_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/dockerfile/hadolint.vim, dotfiles/.vim/plugged/ale/ale_linters/elixir/credo.vim, dotfiles/.vim/plugged/ale/ale_linters/elixir/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/elixir/dialyxir.vim, dotfiles/.vim/plugged/ale/ale_linters/elixir/dogma.vim, dotfiles/.vim/plugged/ale/ale_linters/elixir/elixir_ls.vim, dotfiles/.vim/plugged/ale/ale_linters/elixir/mix.vim, dotfiles/.vim/plugged/ale/ale_linters/elm/elm_ls.vim, dotfiles/.vim/plugged/ale/ale_linters/elm/make.vim, dotfiles/.vim/plugged/ale/ale_linters/erlang/dialyzer.vim, dotfiles/.vim/plugged/ale/ale_linters/erlang/elvis.vim, dotfiles/.vim/plugged/ale/ale_linters/erlang/erlc.vim, dotfiles/.vim/plugged/ale/ale_linters/erlang/syntaxerl.vim, dotfiles/.vim/plugged/ale/ale_linters/eruby/erb.vim, dotfiles/.vim/plugged/ale/ale_linters/eruby/erblint.vim, dotfiles/.vim/plugged/ale/ale_linters/eruby/erubi.vim, dotfiles/.vim/plugged/ale/ale_linters/eruby/erubis.vim, dotfiles/.vim/plugged/ale/ale_linters/eruby/ruumba.vim, dotfiles/.vim/plugged/ale/ale_linters/fish/fish.vim, dotfiles/.vim/plugged/ale/ale_linters/fortran/gcc.vim, dotfiles/.vim/plugged/ale/ale_linters/fortran/language_server.vim, dotfiles/.vim/plugged/ale/ale_linters/fountain/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/fuse/fusionlint.vim, dotfiles/.vim/plugged/ale/ale_linters/gitcommit/gitlint.vim, dotfiles/.vim/plugged/ale/ale_linters/glsl/glslang.vim, dotfiles/.vim/plugged/ale/ale_linters/glsl/glslls.vim, dotfiles/.vim/plugged/ale/ale_linters/go/bingo.vim, dotfiles/.vim/plugged/ale/ale_linters/go/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/go/gobuild.vim, dotfiles/.vim/plugged/ale/ale_linters/go/gofmt.vim, dotfiles/.vim/plugged/ale/ale_linters/go/golangci_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/go/golint.vim, dotfiles/.vim/plugged/ale/ale_linters/go/gometalinter.vim, dotfiles/.vim/plugged/ale/ale_linters/go/gopls.vim, dotfiles/.vim/plugged/ale/ale_linters/go/gosimple.vim, dotfiles/.vim/plugged/ale/ale_linters/go/gotype.vim, dotfiles/.vim/plugged/ale/ale_linters/go/govet.vim, dotfiles/.vim/plugged/ale/ale_linters/go/langserver.vim, dotfiles/.vim/plugged/ale/ale_linters/go/revive.vim, dotfiles/.vim/plugged/ale/ale_linters/go/staticcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/graphql/eslint.vim, dotfiles/.vim/plugged/ale/ale_linters/graphql/gqlint.vim, dotfiles/.vim/plugged/ale/ale_linters/hack/hack.vim, dotfiles/.vim/plugged/ale/ale_linters/hack/hhast.vim, dotfiles/.vim/plugged/ale/ale_linters/haml/hamllint.vim, dotfiles/.vim/plugged/ale/ale_linters/handlebars/embertemplatelint.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/cabal_ghc.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/ghc.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/ghc_mod.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/hdevtools.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/hie.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/hlint.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/hls.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/stack_build.vim, dotfiles/.vim/plugged/ale/ale_linters/haskell/stack_ghc.vim, dotfiles/.vim/plugged/ale/ale_linters/help/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/help/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/help/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/help/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/html/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/html/angular.vim, dotfiles/.vim/plugged/ale/ale_linters/html/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/html/fecs.vim, dotfiles/.vim/plugged/ale/ale_linters/html/htmlhint.vim, dotfiles/.vim/plugged/ale/ale_linters/html/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/html/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/html/tidy.vim, dotfiles/.vim/plugged/ale/ale_linters/html/vscodehtml.vim, dotfiles/.vim/plugged/ale/ale_linters/html/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/idris/idris.vim, dotfiles/.vim/plugged/ale/ale_linters/ink/ls.vim, dotfiles/.vim/plugged/ale/ale_linters/inko/inko.vim, dotfiles/.vim/plugged/ale/ale_linters/ispc/ispc.vim, dotfiles/.vim/plugged/ale/ale_linters/java/checkstyle.vim, dotfiles/.vim/plugged/ale/ale_linters/java/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/java/eclipselsp.vim, dotfiles/.vim/plugged/ale/ale_linters/java/javac.vim, dotfiles/.vim/plugged/ale/ale_linters/java/javalsp.vim, dotfiles/.vim/plugged/ale/ale_linters/java/pmd.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/deno.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/eslint.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/fecs.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/flow.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/flow_ls.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/jscs.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/jshint.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/standard.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/tsserver.vim, dotfiles/.vim/plugged/ale/ale_linters/javascript/xo.vim, dotfiles/.vim/plugged/ale/ale_linters/json/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/json/eslint.vim, dotfiles/.vim/plugged/ale/ale_linters/json/jq.vim, dotfiles/.vim/plugged/ale/ale_linters/json/jsonlint.vim, dotfiles/.vim/plugged/ale/ale_linters/json/spectral.vim, dotfiles/.vim/plugged/ale/ale_linters/json/vscodejson.vim, dotfiles/.vim/plugged/ale/ale_linters/json5/eslint.vim, dotfiles/.vim/plugged/ale/ale_linters/jsonc/eslint.vim, dotfiles/.vim/plugged/ale/ale_linters/jsonnet/jsonnet_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/jsonnet/jsonnetfmt.vim, dotfiles/.vim/plugged/ale/ale_linters/julia/languageserver.vim, dotfiles/.vim/plugged/ale/ale_linters/kotlin/kotlinc.vim, dotfiles/.vim/plugged/ale/ale_linters/kotlin/ktlint.vim, dotfiles/.vim/plugged/ale/ale_linters/kotlin/languageserver.vim, dotfiles/.vim/plugged/ale/ale_linters/less/lessc.vim, dotfiles/.vim/plugged/ale/ale_linters/less/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/llvm/llc.vim, dotfiles/.vim/plugged/ale/ale_linters/lua/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/lua/luac.vim, dotfiles/.vim/plugged/ale/ale_linters/lua/luacheck.vim, dotfiles/.vim/plugged/ale/ale_linters/lua/selene.vim, dotfiles/.vim/plugged/ale/ale_linters/mail/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/mail/languagetool.vim, dotfiles/.vim/plugged/ale/ale_linters/mail/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/mail/vale.vim, dotfiles/.vim/plugged/ale/ale_linters/make/checkmake.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/languagetool.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/markdownlint.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/mdl.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/redpen.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/remark_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/textlint.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/vale.vim, dotfiles/.vim/plugged/ale/ale_linters/markdown/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/matlab/mlint.vim, dotfiles/.vim/plugged/ale/ale_linters/mercury/mmc.vim, dotfiles/.vim/plugged/ale/ale_linters/nasm/nasm.vim, dotfiles/.vim/plugged/ale/ale_linters/nim/nimcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/nim/nimlsp.vim, dotfiles/.vim/plugged/ale/ale_linters/nix/nix.vim, dotfiles/.vim/plugged/ale/ale_linters/nix/rnix_lsp.vim, dotfiles/.vim/plugged/ale/ale_linters/nix/statix.vim, dotfiles/.vim/plugged/ale/ale_linters/nroff/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/nroff/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/nroff/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/objc/ccls.vim, dotfiles/.vim/plugged/ale/ale_linters/objc/clang.vim, dotfiles/.vim/plugged/ale/ale_linters/objc/clangd.vim, dotfiles/.vim/plugged/ale/ale_linters/objcpp/clang.vim, dotfiles/.vim/plugged/ale/ale_linters/objcpp/clangd.vim, dotfiles/.vim/plugged/ale/ale_linters/ocaml/merlin.vim, dotfiles/.vim/plugged/ale/ale_linters/ocaml/ocamllsp.vim, dotfiles/.vim/plugged/ale/ale_linters/ocaml/ols.vim, dotfiles/.vim/plugged/ale/ale_linters/ocamlinterface/merlin.vim, dotfiles/.vim/plugged/ale/ale_linters/ocamlinterface/ocamllsp.vim, dotfiles/.vim/plugged/ale/ale_linters/openapi/ibm_validator.vim, dotfiles/.vim/plugged/ale/ale_linters/openapi/yamllint.vim, dotfiles/.vim/plugged/ale/ale_linters/openscad/sca2d.vim, dotfiles/.vim/plugged/ale/ale_linters/perl/perl.vim, dotfiles/.vim/plugged/ale/ale_linters/perl/perlcritic.vim, dotfiles/.vim/plugged/ale/ale_linters/perl6/perl6.vim, dotfiles/.vim/plugged/ale/ale_linters/php/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/php/intelephense.vim, dotfiles/.vim/plugged/ale/ale_linters/php/langserver.vim, dotfiles/.vim/plugged/ale/ale_linters/php/phan.vim, dotfiles/.vim/plugged/ale/ale_linters/php/php.vim, dotfiles/.vim/plugged/ale/ale_linters/php/phpactor.vim, dotfiles/.vim/plugged/ale/ale_linters/php/phpcs.vim, dotfiles/.vim/plugged/ale/ale_linters/php/phpmd.vim, dotfiles/.vim/plugged/ale/ale_linters/php/phpstan.vim, dotfiles/.vim/plugged/ale/ale_linters/php/psalm.vim, dotfiles/.vim/plugged/ale/ale_linters/php/tlint.vim, dotfiles/.vim/plugged/ale/ale_linters/po/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/po/msgfmt.vim, dotfiles/.vim/plugged/ale/ale_linters/po/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/po/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/pod/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/pod/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/pod/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/pony/ponyc.vim, dotfiles/.vim/plugged/ale/ale_linters/powershell/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/powershell/powershell.vim, dotfiles/.vim/plugged/ale/ale_linters/powershell/psscriptanalyzer.vim, dotfiles/.vim/plugged/ale/ale_linters/prolog/swipl.vim, dotfiles/.vim/plugged/ale/ale_linters/proto/buf_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/proto/protoc_gen_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/proto/protolint.vim, dotfiles/.vim/plugged/ale/ale_linters/pug/puglint.vim, dotfiles/.vim/plugged/ale/ale_linters/puppet/languageserver.vim, dotfiles/.vim/plugged/ale/ale_linters/puppet/puppet.vim, dotfiles/.vim/plugged/ale/ale_linters/puppet/puppetlint.vim, dotfiles/.vim/plugged/ale/ale_linters/purescript/ls.vim, dotfiles/.vim/plugged/ale/ale_linters/pyrex/cython.vim, dotfiles/.vim/plugged/ale/ale_linters/python/bandit.vim, dotfiles/.vim/plugged/ale/ale_linters/python/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/python/flake8.vim, dotfiles/.vim/plugged/ale/ale_linters/python/flakehell.vim, dotfiles/.vim/plugged/ale/ale_linters/python/jedils.vim, dotfiles/.vim/plugged/ale/ale_linters/python/mypy.vim, dotfiles/.vim/plugged/ale/ale_linters/python/prospector.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pycodestyle.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pydocstyle.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pyflakes.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pylama.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pylint.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pylsp.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pyre.vim, dotfiles/.vim/plugged/ale/ale_linters/python/pyright.vim, dotfiles/.vim/plugged/ale/ale_linters/python/unimport.vim, dotfiles/.vim/plugged/ale/ale_linters/python/vulture.vim, dotfiles/.vim/plugged/ale/ale_linters/qml/qmlfmt.vim, dotfiles/.vim/plugged/ale/ale_linters/qml/qmllint.vim, dotfiles/.vim/plugged/ale/ale_linters/r/languageserver.vim, dotfiles/.vim/plugged/ale/ale_linters/r/lintr.vim, dotfiles/.vim/plugged/ale/ale_linters/racket/langserver.vim, dotfiles/.vim/plugged/ale/ale_linters/racket/raco.vim, dotfiles/.vim/plugged/ale/ale_linters/reason/ls.vim, dotfiles/.vim/plugged/ale/ale_linters/reason/merlin.vim, dotfiles/.vim/plugged/ale/ale_linters/reason/ols.vim, dotfiles/.vim/plugged/ale/ale_linters/rego/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/rego/opacheck.vim, dotfiles/.vim/plugged/ale/ale_linters/review/redpen.vim, dotfiles/.vim/plugged/ale/ale_linters/robot/rflint.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/redpen.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/rstcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/textlint.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/vale.vim, dotfiles/.vim/plugged/ale/ale_linters/rst/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/brakeman.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/debride.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/rails_best_practices.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/reek.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/rubocop.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/ruby.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/solargraph.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/sorbet.vim, dotfiles/.vim/plugged/ale/ale_linters/ruby/standardrb.vim, dotfiles/.vim/plugged/ale/ale_linters/rust/analyzer.vim, dotfiles/.vim/plugged/ale/ale_linters/rust/cargo.vim, dotfiles/.vim/plugged/ale/ale_linters/rust/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/rust/rls.vim, dotfiles/.vim/plugged/ale/ale_linters/rust/rustc.vim, dotfiles/.vim/plugged/ale/ale_linters/salt/salt_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/sass/sasslint.vim, dotfiles/.vim/plugged/ale/ale_linters/sass/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/scala/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/scala/fsc.vim, dotfiles/.vim/plugged/ale/ale_linters/scala/metals.vim, dotfiles/.vim/plugged/ale/ale_linters/scala/sbtserver.vim, dotfiles/.vim/plugged/ale/ale_linters/scala/scalac.vim, dotfiles/.vim/plugged/ale/ale_linters/scala/scalastyle.vim, dotfiles/.vim/plugged/ale/ale_linters/scss/sasslint.vim, dotfiles/.vim/plugged/ale/ale_linters/scss/scsslint.vim, dotfiles/.vim/plugged/ale/ale_linters/scss/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/sh/bashate.vim, dotfiles/.vim/plugged/ale/ale_linters/sh/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/sh/language_server.vim, dotfiles/.vim/plugged/ale/ale_linters/sh/shell.vim, dotfiles/.vim/plugged/ale/ale_linters/sh/shellcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/slim/slimlint.vim, dotfiles/.vim/plugged/ale/ale_linters/sml/smlnj.vim, dotfiles/.vim/plugged/ale/ale_linters/sml/smlnj_cm.vim, dotfiles/.vim/plugged/ale/ale_linters/solidity/solc.vim, dotfiles/.vim/plugged/ale/ale_linters/solidity/solhint.vim, dotfiles/.vim/plugged/ale/ale_linters/solidity/solium.vim, dotfiles/.vim/plugged/ale/ale_linters/spec/rpmlint.vim, dotfiles/.vim/plugged/ale/ale_linters/sql/sqlint.vim, dotfiles/.vim/plugged/ale/ale_linters/sql/sqllint.vim, dotfiles/.vim/plugged/ale/ale_linters/stylus/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/sugarss/stylelint.vim, dotfiles/.vim/plugged/ale/ale_linters/svelte/svelteserver.vim, dotfiles/.vim/plugged/ale/ale_linters/swift/appleswiftformat.vim, dotfiles/.vim/plugged/ale/ale_linters/swift/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/swift/sourcekitlsp.vim, dotfiles/.vim/plugged/ale/ale_linters/swift/swiftlint.vim, dotfiles/.vim/plugged/ale/ale_linters/systemd/systemd_analyze.vim, dotfiles/.vim/plugged/ale/ale_linters/tcl/nagelfar.vim, dotfiles/.vim/plugged/ale/ale_linters/terraform/checkov.vim, dotfiles/.vim/plugged/ale/ale_linters/terraform/terraform.vim, dotfiles/.vim/plugged/ale/ale_linters/terraform/terraform_ls.vim, dotfiles/.vim/plugged/ale/ale_linters/terraform/terraform_lsp.vim, dotfiles/.vim/plugged/ale/ale_linters/terraform/tflint.vim, dotfiles/.vim/plugged/ale/ale_linters/terraform/tfsec.vim, dotfiles/.vim/plugged/ale/ale_linters/testft/testlinter.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/chktex.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/lacheck.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/redpen.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/texlab.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/textlint.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/vale.vim, dotfiles/.vim/plugged/ale/ale_linters/tex/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/texinfo/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/texinfo/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/texinfo/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/texinfo/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/text/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/text/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/text/languagetool.vim, dotfiles/.vim/plugged/ale/ale_linters/text/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/text/redpen.vim, dotfiles/.vim/plugged/ale/ale_linters/text/textlint.vim, dotfiles/.vim/plugged/ale/ale_linters/text/vale.vim, dotfiles/.vim/plugged/ale/ale_linters/text/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/thrift/thrift.vim, dotfiles/.vim/plugged/ale/ale_linters/thrift/thriftcheck.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/deno.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/eslint.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/standard.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/tslint.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/tsserver.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/typecheck.vim, dotfiles/.vim/plugged/ale/ale_linters/typescript/xo.vim, dotfiles/.vim/plugged/ale/ale_linters/v/v.vim, dotfiles/.vim/plugged/ale/ale_linters/vala/vala_lint.vim, dotfiles/.vim/plugged/ale/ale_linters/verilog/hdl_checker.vim, dotfiles/.vim/plugged/ale/ale_linters/verilog/iverilog.vim, dotfiles/.vim/plugged/ale/ale_linters/verilog/verilator.vim, dotfiles/.vim/plugged/ale/ale_linters/verilog/vlog.vim, dotfiles/.vim/plugged/ale/ale_linters/verilog/xvlog.vim, dotfiles/.vim/plugged/ale/ale_linters/verilog/yosys.vim, dotfiles/.vim/plugged/ale/ale_linters/vhdl/ghdl.vim, dotfiles/.vim/plugged/ale/ale_linters/vhdl/hdl_checker.vim, dotfiles/.vim/plugged/ale/ale_linters/vhdl/vcom.vim, dotfiles/.vim/plugged/ale/ale_linters/vhdl/xvhdl.vim, dotfiles/.vim/plugged/ale/ale_linters/vim/ale_custom_linting_rules.vim, dotfiles/.vim/plugged/ale/ale_linters/vim/vimls.vim, dotfiles/.vim/plugged/ale/ale_linters/vim/vint.vim, dotfiles/.vim/plugged/ale/ale_linters/vue/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/vue/vls.vim, dotfiles/.vim/plugged/ale/ale_linters/vue/volar.vim, dotfiles/.vim/plugged/ale/ale_linters/wgsl/naga.vim, dotfiles/.vim/plugged/ale/ale_linters/xhtml/alex.vim, dotfiles/.vim/plugged/ale/ale_linters/xhtml/cspell.vim, dotfiles/.vim/plugged/ale/ale_linters/xhtml/proselint.vim, dotfiles/.vim/plugged/ale/ale_linters/xhtml/writegood.vim, dotfiles/.vim/plugged/ale/ale_linters/xml/xmllint.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/actionlint.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/circleci.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/gitlablint.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/ls.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/spectral.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/swaglint.vim, dotfiles/.vim/plugged/ale/ale_linters/yaml/yamllint.vim, dotfiles/.vim/plugged/ale/ale_linters/yang/yang_lsp.vim, dotfiles/.vim/plugged/ale/ale_linters/zeek/zeek.vim, dotfiles/.vim/plugged/ale/ale_linters/zig/zls.vim, dotfiles/.vim/plugged/ale/autoload/ale/completion/python.vim, dotfiles/.vim/plugged/ale/autoload/ale/engine/ignore.vim, dotfiles/.vim/plugged/ale/autoload/ale/fix/registry.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/appleswiftformat.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/astyle.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/autoflake.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/autoimport.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/autopep8.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/bibclean.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/black.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/brittany.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/buf_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/buildifier.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/clangformat.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/clangtidy.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/cmakeformat.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/crystal.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/css_beautify.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dart_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dartfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/deno.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dhall_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dhall_freeze.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dhall_lint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dotnet_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dprint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/dune.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/elm_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/erblint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/erlfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/eslint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/fecs.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/fish_indent.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/fixjson.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/floskell.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/generic.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/generic_python.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/gnatpp.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/gofmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/gofumpt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/goimports.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/golines.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/gomod.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/google_java_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/hackfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/help.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/hfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/hindent.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/hlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/html_beautify.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/importjs.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/isort.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/jq.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/jsonnetfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/ktlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/latexindent.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/lua_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/luafmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/mix_format.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/nimpretty.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/nixfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/nixpkgsfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/ocamlformat.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/ocp_indent.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/opafmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/ormolu.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/packer.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/pandoc.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/perltidy.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/pgformatter.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/php_cs_fixer.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/phpcbf.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/pint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/prettier.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/prettier_eslint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/prettier_standard.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/protolint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/ptop.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/puppetlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/purs_tidy.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/purty.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/pyflyby.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/qmlfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/refmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/remark_lint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/reorder_python_imports.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/rubocop.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/rufo.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/rustfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/scalafmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/shfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/sorbet.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/sqlfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/sqlformat.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/standard.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/standardrb.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/statix.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/stylelint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/styler.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/stylish_haskell.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/stylua.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/swiftformat.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/syntax_tree.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/terraform.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/textlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/tidy.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/tslint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/uncrustify.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/vfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/xmllint.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/xo.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/yamlfix.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/yapf.vim, dotfiles/.vim/plugged/ale/autoload/ale/fixers/zigfmt.vim, dotfiles/.vim/plugged/ale/autoload/ale/gradle/init.gradle, dotfiles/.vim/plugged/ale/autoload/ale/handlers/actionlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/alex.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/atools.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/ccls.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/cppcheck.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/cpplint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/cspell.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/css.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/deno.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/elixir.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/eslint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/fecs.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/flawfinder.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/gawk.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/gcc.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/go.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/haskell.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/haskell_stack.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/hdl_checker.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/hlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/inko.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/ktlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/languagetool.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/markdownlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/naga.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/ocamllsp.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/ols.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/openscad.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/pony.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/redpen.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/ruby.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/rust.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/scala.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/sh.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/shellcheck.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/sml.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/solhint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/spectral.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/statix.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/textlint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/tslint.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/tsserver.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/unix.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/vale.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/writegood.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/xo.vim, dotfiles/.vim/plugged/ale/autoload/ale/handlers/yamllint.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp/message.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp/reset.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp/response.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp/tsserver_message.vim, dotfiles/.vim/plugged/ale/autoload/ale/uri/jdt.vim, dotfiles/.vim/plugged/ale/autoload/ale/ant.vim, dotfiles/.vim/plugged/ale/autoload/ale/args.vim, dotfiles/.vim/plugged/ale/autoload/ale/assert.vim, dotfiles/.vim/plugged/ale/autoload/ale/balloon.vim, dotfiles/.vim/plugged/ale/autoload/ale/c.vim, dotfiles/.vim/plugged/ale/autoload/ale/code_action.vim, dotfiles/.vim/plugged/ale/autoload/ale/codefix.vim, dotfiles/.vim/plugged/ale/autoload/ale/command.vim, dotfiles/.vim/plugged/ale/autoload/ale/completion.vim, dotfiles/.vim/plugged/ale/autoload/ale/cursor.vim, dotfiles/.vim/plugged/ale/autoload/ale/d.vim, dotfiles/.vim/plugged/ale/autoload/ale/debugging.vim, dotfiles/.vim/plugged/ale/autoload/ale/definition.vim, dotfiles/.vim/plugged/ale/autoload/ale/dhall.vim, dotfiles/.vim/plugged/ale/autoload/ale/engine.vim, dotfiles/.vim/plugged/ale/autoload/ale/events.vim, dotfiles/.vim/plugged/ale/autoload/ale/filename_mapping.vim, dotfiles/.vim/plugged/ale/autoload/ale/filerename.vim, dotfiles/.vim/plugged/ale/autoload/ale/filetypes.vim, dotfiles/.vim/plugged/ale/autoload/ale/fix.vim, dotfiles/.vim/plugged/ale/autoload/ale/floating_preview.vim, dotfiles/.vim/plugged/ale/autoload/ale/go.vim, dotfiles/.vim/plugged/ale/autoload/ale/gradle.vim, dotfiles/.vim/plugged/ale/autoload/ale/highlight.vim, dotfiles/.vim/plugged/ale/autoload/ale/history.vim, dotfiles/.vim/plugged/ale/autoload/ale/hover.vim, dotfiles/.vim/plugged/ale/autoload/ale/java.vim, dotfiles/.vim/plugged/ale/autoload/ale/job.vim, dotfiles/.vim/plugged/ale/autoload/ale/julia.vim, dotfiles/.vim/plugged/ale/autoload/ale/linter.vim, dotfiles/.vim/plugged/ale/autoload/ale/list.vim, dotfiles/.vim/plugged/ale/autoload/ale/loclist_jumping.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp_linter.vim, dotfiles/.vim/plugged/ale/autoload/ale/lsp_window.vim, dotfiles/.vim/plugged/ale/autoload/ale/maven.vim, dotfiles/.vim/plugged/ale/autoload/ale/node.vim, dotfiles/.vim/plugged/ale/autoload/ale/organize_imports.vim, dotfiles/.vim/plugged/ale/autoload/ale/other_source.vim, dotfiles/.vim/plugged/ale/autoload/ale/path.vim, dotfiles/.vim/plugged/ale/autoload/ale/pattern_options.vim, dotfiles/.vim/plugged/ale/autoload/ale/powershell.vim, dotfiles/.vim/plugged/ale/autoload/ale/preview.vim, dotfiles/.vim/plugged/ale/autoload/ale/python.vim, dotfiles/.vim/plugged/ale/autoload/ale/racket.vim, dotfiles/.vim/plugged/ale/autoload/ale/references.vim, dotfiles/.vim/plugged/ale/autoload/ale/rename.vim, dotfiles/.vim/plugged/ale/autoload/ale/ruby.vim, dotfiles/.vim/plugged/ale/autoload/ale/semver.vim, dotfiles/.vim/plugged/ale/autoload/ale/sign.vim, dotfiles/.vim/plugged/ale/autoload/ale/socket.vim, dotfiles/.vim/plugged/ale/autoload/ale/statusline.vim, dotfiles/.vim/plugged/ale/autoload/ale/swift.vim, dotfiles/.vim/plugged/ale/autoload/ale/symbol.vim, dotfiles/.vim/plugged/ale/autoload/ale/test.vim, dotfiles/.vim/plugged/ale/autoload/ale/toggle.vim, dotfiles/.vim/plugged/ale/autoload/ale/uri.vim, dotfiles/.vim/plugged/ale/autoload/ale/util.vim, dotfiles/.vim/plugged/ale/autoload/ale/virtualtext.vim, dotfiles/.vim/plugged/ale/autoload/asyncomplete/sources/ale.vim, dotfiles/.vim/plugged/ale/autoload/ale.vim, dotfiles/.vim/plugged/ale/doc/ale-ada.txt, dotfiles/.vim/plugged/ale/doc/ale-ansible.txt, dotfiles/.vim/plugged/ale/doc/ale-apkbuild.txt, dotfiles/.vim/plugged/ale/doc/ale-asciidoc.txt, dotfiles/.vim/plugged/ale/doc/ale-asm.txt, dotfiles/.vim/plugged/ale/doc/ale-avra.txt, dotfiles/.vim/plugged/ale/doc/ale-awk.txt, dotfiles/.vim/plugged/ale/doc/ale-bats.txt, dotfiles/.vim/plugged/ale/doc/ale-bazel.txt, dotfiles/.vim/plugged/ale/doc/ale-bib.txt, dotfiles/.vim/plugged/ale/doc/ale-bicep.txt, dotfiles/.vim/plugged/ale/doc/ale-bitbake.txt, dotfiles/.vim/plugged/ale/doc/ale-c.txt, dotfiles/.vim/plugged/ale/doc/ale-cairo.txt, dotfiles/.vim/plugged/ale/doc/ale-chef.txt, dotfiles/.vim/plugged/ale/doc/ale-clojure.txt, dotfiles/.vim/plugged/ale/doc/ale-cloudformation.txt, dotfiles/.vim/plugged/ale/doc/ale-cmake.txt, dotfiles/.vim/plugged/ale/doc/ale-cpp.txt, dotfiles/.vim/plugged/ale/doc/ale-cs.txt, dotfiles/.vim/plugged/ale/doc/ale-css.txt, dotfiles/.vim/plugged/ale/doc/ale-cuda.txt, dotfiles/.vim/plugged/ale/doc/ale-d.txt, dotfiles/.vim/plugged/ale/doc/ale-dafny.txt, dotfiles/.vim/plugged/ale/doc/ale-dart.txt, dotfiles/.vim/plugged/ale/doc/ale-desktop.txt, dotfiles/.vim/plugged/ale/doc/ale-development.txt, dotfiles/.vim/plugged/ale/doc/ale-dhall.txt, dotfiles/.vim/plugged/ale/doc/ale-dockerfile.txt, dotfiles/.vim/plugged/ale/doc/ale-elixir.txt, dotfiles/.vim/plugged/ale/doc/ale-elm.txt, dotfiles/.vim/plugged/ale/doc/ale-erlang.txt, dotfiles/.vim/plugged/ale/doc/ale-eruby.txt, dotfiles/.vim/plugged/ale/doc/ale-fish.txt, dotfiles/.vim/plugged/ale/doc/ale-fortran.txt, dotfiles/.vim/plugged/ale/doc/ale-fountain.txt, dotfiles/.vim/plugged/ale/doc/ale-fuse.txt, dotfiles/.vim/plugged/ale/doc/ale-gitcommit.txt, dotfiles/.vim/plugged/ale/doc/ale-glsl.txt, dotfiles/.vim/plugged/ale/doc/ale-go.txt, dotfiles/.vim/plugged/ale/doc/ale-graphql.txt, dotfiles/.vim/plugged/ale/doc/ale-hack.txt, dotfiles/.vim/plugged/ale/doc/ale-handlebars.txt, dotfiles/.vim/plugged/ale/doc/ale-haskell.txt, dotfiles/.vim/plugged/ale/doc/ale-hcl.txt, dotfiles/.vim/plugged/ale/doc/ale-help.txt, dotfiles/.vim/plugged/ale/doc/ale-html.txt, dotfiles/.vim/plugged/ale/doc/ale-idris.txt, dotfiles/.vim/plugged/ale/doc/ale-ink.txt, dotfiles/.vim/plugged/ale/doc/ale-inko.txt, dotfiles/.vim/plugged/ale/doc/ale-ispc.txt, dotfiles/.vim/plugged/ale/doc/ale-java.txt, dotfiles/.vim/plugged/ale/doc/ale-javascript.txt, dotfiles/.vim/plugged/ale/doc/ale-json.txt, dotfiles/.vim/plugged/ale/doc/ale-json5.txt, dotfiles/.vim/plugged/ale/doc/ale-jsonc.txt, dotfiles/.vim/plugged/ale/doc/ale-jsonnet.txt, dotfiles/.vim/plugged/ale/doc/ale-julia.txt, dotfiles/.vim/plugged/ale/doc/ale-kotlin.txt, dotfiles/.vim/plugged/ale/doc/ale-latex.txt, dotfiles/.vim/plugged/ale/doc/ale-less.txt, dotfiles/.vim/plugged/ale/doc/ale-llvm.txt, dotfiles/.vim/plugged/ale/doc/ale-lua.txt, dotfiles/.vim/plugged/ale/doc/ale-markdown.txt, dotfiles/.vim/plugged/ale/doc/ale-mercury.txt, dotfiles/.vim/plugged/ale/doc/ale-nasm.txt, dotfiles/.vim/plugged/ale/doc/ale-nim.txt, dotfiles/.vim/plugged/ale/doc/ale-nix.txt, dotfiles/.vim/plugged/ale/doc/ale-nroff.txt, dotfiles/.vim/plugged/ale/doc/ale-objc.txt, dotfiles/.vim/plugged/ale/doc/ale-objcpp.txt, dotfiles/.vim/plugged/ale/doc/ale-ocaml.txt, dotfiles/.vim/plugged/ale/doc/ale-openapi.txt, dotfiles/.vim/plugged/ale/doc/ale-openscad.txt, dotfiles/.vim/plugged/ale/doc/ale-packer.txt, dotfiles/.vim/plugged/ale/doc/ale-pascal.txt, dotfiles/.vim/plugged/ale/doc/ale-pawn.txt, dotfiles/.vim/plugged/ale/doc/ale-perl.txt, dotfiles/.vim/plugged/ale/doc/ale-perl6.txt, dotfiles/.vim/plugged/ale/doc/ale-php.txt, dotfiles/.vim/plugged/ale/doc/ale-po.txt, dotfiles/.vim/plugged/ale/doc/ale-pod.txt, dotfiles/.vim/plugged/ale/doc/ale-pony.txt, dotfiles/.vim/plugged/ale/doc/ale-powershell.txt, dotfiles/.vim/plugged/ale/doc/ale-prolog.txt, dotfiles/.vim/plugged/ale/doc/ale-proto.txt, dotfiles/.vim/plugged/ale/doc/ale-pug.txt, dotfiles/.vim/plugged/ale/doc/ale-puppet.txt, dotfiles/.vim/plugged/ale/doc/ale-purescript.txt, dotfiles/.vim/plugged/ale/doc/ale-pyrex.txt, dotfiles/.vim/plugged/ale/doc/ale-python.txt, dotfiles/.vim/plugged/ale/doc/ale-qml.txt, dotfiles/.vim/plugged/ale/doc/ale-r.txt, dotfiles/.vim/plugged/ale/doc/ale-reasonml.txt, dotfiles/.vim/plugged/ale/doc/ale-rego.txt, dotfiles/.vim/plugged/ale/doc/ale-restructuredtext.txt, dotfiles/.vim/plugged/ale/doc/ale-robot.txt, dotfiles/.vim/plugged/ale/doc/ale-ruby.txt, dotfiles/.vim/plugged/ale/doc/ale-rust.txt, dotfiles/.vim/plugged/ale/doc/ale-salt.tmt, dotfiles/.vim/plugged/ale/doc/ale-sass.txt, dotfiles/.vim/plugged/ale/doc/ale-scala.txt, dotfiles/.vim/plugged/ale/doc/ale-scss.txt, dotfiles/.vim/plugged/ale/doc/ale-sh.txt, dotfiles/.vim/plugged/ale/doc/ale-sml.txt, dotfiles/.vim/plugged/ale/doc/ale-solidity.txt, dotfiles/.vim/plugged/ale/doc/ale-spec.txt, dotfiles/.vim/plugged/ale/doc/ale-sql.txt, dotfiles/.vim/plugged/ale/doc/ale-stylus.txt, dotfiles/.vim/plugged/ale/doc/ale-sugarss.txt, dotfiles/.vim/plugged/ale/doc/ale-supported-languages-and-tools.txt, dotfiles/.vim/plugged/ale/doc/ale-svelte.txt, dotfiles/.vim/plugged/ale/doc/ale-swift.txt, dotfiles/.vim/plugged/ale/doc/ale-systemd.txt, dotfiles/.vim/plugged/ale/doc/ale-tcl.txt, dotfiles/.vim/plugged/ale/doc/ale-terraform.txt, dotfiles/.vim/plugged/ale/doc/ale-tex.txt, dotfiles/.vim/plugged/ale/doc/ale-texinfo.txt, dotfiles/.vim/plugged/ale/doc/ale-text.txt, dotfiles/.vim/plugged/ale/doc/ale-thrift.txt, dotfiles/.vim/plugged/ale/doc/ale-toml.txt, dotfiles/.vim/plugged/ale/doc/ale-typescript.txt, dotfiles/.vim/plugged/ale/doc/ale-v.txt, dotfiles/.vim/plugged/ale/doc/ale-vala.txt, dotfiles/.vim/plugged/ale/doc/ale-verilog.txt, dotfiles/.vim/plugged/ale/doc/ale-vhdl.txt, dotfiles/.vim/plugged/ale/doc/ale-vim-help.txt, dotfiles/.vim/plugged/ale/doc/ale-vim.txt, dotfiles/.vim/plugged/ale/doc/ale-vue.txt, dotfiles/.vim/plugged/ale/doc/ale-wgsl.txt, dotfiles/.vim/plugged/ale/doc/ale-xhtml.txt, dotfiles/.vim/plugged/ale/doc/ale-xml.txt, dotfiles/.vim/plugged/ale/doc/ale-yaml.txt, dotfiles/.vim/plugged/ale/doc/ale-yang.txt, dotfiles/.vim/plugged/ale/doc/ale-zeek.txt, dotfiles/.vim/plugged/ale/doc/ale-zig.txt, dotfiles/.vim/plugged/ale/doc/ale.txt, dotfiles/.vim/plugged/ale/ftplugin/ale-fix-suggest.vim, dotfiles/.vim/plugged/ale/ftplugin/ale-preview-selection.vim, dotfiles/.vim/plugged/ale/ftplugin/ale-preview.vim, dotfiles/.vim/plugged/ale/plugin/ale.vim, dotfiles/.vim/plugged/ale/rplugin/python3/deoplete/sources/ale.py, dotfiles/.vim/plugged/ale/syntax/ale-fix-suggest.vim, dotfiles/.vim/plugged/ale/syntax/ale-preview-selection.vim, dotfiles/.vim/plugged/ale/test/.config/nvim/init.vim, dotfiles/.vim/plugged/ale/test/completion/test_ale_import_command.vader, dotfiles/.vim/plugged/ale/test/completion/test_complete_events.vader, dotfiles/.vim/plugged/ale/test/completion/test_completion_events.vader, dotfiles/.vim/plugged/ale/test/completion/test_completion_filtering.vader, dotfiles/.vim/plugged/ale/test/completion/test_completion_prefixes.vader, dotfiles/.vim/plugged/ale/test/completion/test_lsp_completion_messages.vader, dotfiles/.vim/plugged/ale/test/completion/test_lsp_completion_parsing.vader, dotfiles/.vim/plugged/ale/test/completion/test_omnifunc_completion.vader, dotfiles/.vim/plugged/ale/test/completion/test_public_completion_api.vader, dotfiles/.vim/plugged/ale/test/completion/test_tsserver_completion_parsing.vader, dotfiles/.vim/plugged/ale/test/fix/test_ale_fix.vader, dotfiles/.vim/plugged/ale/test/fix/test_ale_fix_aliases.vader, dotfiles/.vim/plugged/ale/test/fix/test_ale_fix_completion.vader, dotfiles/.vim/plugged/ale/test/fix/test_ale_fix_completion_filter.vader, dotfiles/.vim/plugged/ale/test/fix/test_ale_fix_ignore.vader, dotfiles/.vim/plugged/ale/test/fix/test_ale_fix_suggest.vader, dotfiles/.vim/plugged/ale/test/fixers/test_appleswiftformat_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_astyle_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_autoflake_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_autoimport_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_autopep8_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_bibclean_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_black_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_break_up_long_lines_python_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_brittany_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_buf_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_buildifier_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_clangformat_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_clangtidy_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_cmakeformat_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_crystal_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_css_beautify_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dart_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dartfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dhall_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dhall_freeze_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dhall_lint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dotnet_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dprint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_dune_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_elm_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_erblint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_erlfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_eslint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_fecs_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_fish_indent_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_fixjson_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_floskell_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_gnatpp_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_gofmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_gofumpt_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_goimports_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_golines_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_gomod_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_goofle_java_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_hackfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_hfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_hindent_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_hlint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_html_beautify_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_importjs_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_isort_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_jq_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_jsonnetfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_ktlint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_latexindent_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_lua_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_luafmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_mix_format_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_nimpretty_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_nixfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_nixpkgsfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_ocamlformat_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_ocp_indent_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_opa_fmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_ormolu_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_packer_fmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_pandoc_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_perltidy_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_pgformatter_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_php_cs_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_phpcbf_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_pint_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_prettier_eslint_fixer.callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_prettier_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_prettier_standard_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_protolint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_ptop_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_puppetlint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_purs_tidy_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_purty_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_pyflyby_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_python_add_blank_lines_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_qmlfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_refmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_remark_lint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_reorder_python_imports_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_rubocop_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_rufo_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_rustfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_scalafmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_shfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_sorbet_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_sqlfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_sqlformat_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_standard_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_standardrb_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_statix_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_stylelint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_styler_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_stylish_haskell_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_stylua_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_swiftformat_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_syntax_tree_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_terraform_fmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_textlint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_tidy_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_trim_whitespace.vader, dotfiles/.vim/plugged/ale/test/fixers/test_tslint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_uncrustify_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_vfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_vim_help_tags_alignment_fixer.vader, dotfiles/.vim/plugged/ale/test/fixers/test_xmllint_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_xo_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_xots_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_yamlfix_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_yapf_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/fixers/test_zigfmt_fixer_callback.vader, dotfiles/.vim/plugged/ale/test/handler/test_actionlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ada_gcc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_alex_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ameba_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ansible_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_appleswiftformat_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_asm_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_atools_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_avra_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_bandit_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_bashate_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_bibclean_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_bicep_bicep_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_bitbake_oelint_adv_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_brakeman_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cfn_python_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_checkmake_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_checkov_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_checkstyle_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_circleci_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_clang_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_clojure_clj_kondo_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_clojure_joker_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cmake_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_coffeelint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_common_handlers.vader, dotfiles/.vim/plugged/ale/test/handler/test_cookstyle_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cppcheck_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cpplint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_credo_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_crystal_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_csc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cspell_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cucumber_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cuda_nvcc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_cypher_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_dafny_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_dart_analyze_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_debride_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_desktop_file_validate_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_dmd_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_dockerfile_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_dogma_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_drafter_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_elmmake_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_embertemplatelint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_erblint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_erlang_dialyzer_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_erlang_elvis_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_eslint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_eslint_json_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_fecs_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_fish_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_flake8_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_flakehell_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_flawfinder_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_flow_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_foodcritic_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_fortran_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_gawk_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_gcc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ghc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ghc_mod_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ghdl_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_gitlablint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_gitlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_glslang_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_go_generic_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_gobuild_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_golangci_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_gometalinter_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_hadolint.vader, dotfiles/.vim/plugged/ale/test/handler/test_haskell_stack_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_hlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ibm_openapi_validator_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_idris_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_inko_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ispc_ispc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_javac_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_jscs_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ktlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_lacheck_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_languagetool_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_lessc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_llc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_lua_selene_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_luac_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_luacheck_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_markdownlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_mcs_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_mcsc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_mdl_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_mercury_mmc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_mix_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_msgfmt_hander.vader, dotfiles/.vim/plugged/ale/test/handler/test_mypy_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_naga_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_nagelfar_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_nasm_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_nim_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_nix_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_openscad_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_perl6_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_perl_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_perlcritic_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_php_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_php_phan_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_php_phpmd_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_phpcs_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_phpstan_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pmd_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pony_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_powershell_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_prospector_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_psscriptanalyzer_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_puglint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_puppet_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pycodestyle_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pydocstyle_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pyflakes_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pylama_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pylint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_pyrex_cython_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_qmlfmt_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_qmllint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_raco_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_rails_best_practices_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_redpen_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_reek_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_remark_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_rflint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_rpmlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_rstcheck_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_rubocop_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_ruby_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_rust_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_salt_salt_lint.vader, dotfiles/.vim/plugged/ale/test/handler/test_scala_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_scalastyle_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_shell_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_shellcheck_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_slim_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_sml_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_solc_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_solhint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_spectral_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_sqlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_sqllint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_standard_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_starknet_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_statix_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_stylelint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_swaglint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_swiftlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_swipl_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_syntaxerl_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_systemd_analyze_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_terraform_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_textlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_tflint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_tfsec_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_thrift_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_thriftcheck_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_tlint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_tslint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_typecheck_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_unimport_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_v_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_vala_lint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_vale_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_vcom_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_verilator_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_vint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_vlog_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_vulture_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_write_good_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_xmllint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_xvhdl_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_xvlog_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_yamllint_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_yosys_handler.vader, dotfiles/.vim/plugged/ale/test/handler/test_zeek_handler.vader, dotfiles/.vim/plugged/ale/test/jsonnet_files/testfile.jsonnet, dotfiles/.vim/plugged/ale/test/linter/test_ada_gcc.vader, dotfiles/.vim/plugged/ale/test/linter/test_adals.vader, dotfiles/.vim/plugged/ale/test/linter/test_alex.vader, dotfiles/.vim/plugged/ale/test/linter/test_ameba.vader, dotfiles/.vim/plugged/ale/test/linter/test_angular.vader, dotfiles/.vim/plugged/ale/test/linter/test_ansible_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_asciidoc_textlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_asm_gcc.vader, dotfiles/.vim/plugged/ale/test/linter/test_avra_avra.vader, dotfiles/.vim/plugged/ale/test/linter/test_bandit.vader, dotfiles/.vim/plugged/ale/test/linter/test_bashate.vader, dotfiles/.vim/plugged/ale/test/linter/test_bib_bibclean.vader, dotfiles/.vim/plugged/ale/test/linter/test_bicep_bicep.vader, dotfiles/.vim/plugged/ale/test/linter/test_bingo.vader, dotfiles/.vim/plugged/ale/test/linter/test_bitbake.vader, dotfiles/.vim/plugged/ale/test/linter/test_brakeman.vader, dotfiles/.vim/plugged/ale/test/linter/test_buf_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_cc.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_ccls.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_clang_tidy.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_clangd.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_cppcheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_cquery.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_flawfinder.vader, dotfiles/.vim/plugged/ale/test/linter/test_c_import_paths.vader, dotfiles/.vim/plugged/ale/test/linter/test_cargo.vader, dotfiles/.vim/plugged/ale/test/linter/test_checkov.vader, dotfiles/.vim/plugged/ale/test/linter/test_checkstyle.vader, dotfiles/.vim/plugged/ale/test/linter/test_circleci.vader, dotfiles/.vim/plugged/ale/test/linter/test_clang_tidy.vader, dotfiles/.vim/plugged/ale/test/linter/test_clj_kondo.vader, dotfiles/.vim/plugged/ale/test/linter/test_cmake_cmake_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_cookstyle.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_cc.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_ccls.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_clangcheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_clazy.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_cppcheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_cquery.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpp_flawfinder.vader, dotfiles/.vim/plugged/ale/test/linter/test_cpplint.vader, dotfiles/.vim/plugged/ale/test/linter/test_cs_csc.vader, dotfiles/.vim/plugged/ale/test/linter/test_cs_mcs.vader, dotfiles/.vim/plugged/ale/test/linter/test_cs_mcsc.vader, dotfiles/.vim/plugged/ale/test/linter/test_cspell.vader, dotfiles/.vim/plugged/ale/test/linter/test_cucumber.vader, dotfiles/.vim/plugged/ale/test/linter/test_cuda_nvcc.vader, dotfiles/.vim/plugged/ale/test/linter/test_cypher_cypher_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_d_dls.vader, dotfiles/.vim/plugged/ale/test/linter/test_dart_analysis_server.vader, dotfiles/.vim/plugged/ale/test/linter/test_dart_language_server.vader, dotfiles/.vim/plugged/ale/test/linter/test_desktop_file_validate.vader, dotfiles/.vim/plugged/ale/test/linter/test_dialyxir.vader, dotfiles/.vim/plugged/ale/test/linter/test_dmd_commandline.vader, dotfiles/.vim/plugged/ale/test/linter/test_dockerfile_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_dogma.vader, dotfiles/.vim/plugged/ale/test/linter/test_eclipselsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_elixir_credo.vader, dotfiles/.vim/plugged/ale/test/linter/test_elixir_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_elixir_mix.vader, dotfiles/.vim/plugged/ale/test/linter/test_elm_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_elm_make.vader, dotfiles/.vim/plugged/ale/test/linter/test_embertemplatelint.vader, dotfiles/.vim/plugged/ale/test/linter/test_erb.vader, dotfiles/.vim/plugged/ale/test/linter/test_erblint.vader, dotfiles/.vim/plugged/ale/test/linter/test_erlang_dialyzer.vader, dotfiles/.vim/plugged/ale/test/linter/test_erlang_elvis.vader, dotfiles/.vim/plugged/ale/test/linter/test_erlang_erlc.vader, dotfiles/.vim/plugged/ale/test/linter/test_erlang_syntaxerl.vader, dotfiles/.vim/plugged/ale/test/linter/test_erubi.vader, dotfiles/.vim/plugged/ale/test/linter/test_erubis.vader, dotfiles/.vim/plugged/ale/test/linter/test_eslint.vader, dotfiles/.vim/plugged/ale/test/linter/test_fecs.vader, dotfiles/.vim/plugged/ale/test/linter/test_flake8.vader, dotfiles/.vim/plugged/ale/test/linter/test_flakehell.vader, dotfiles/.vim/plugged/ale/test/linter/test_flow.vader, dotfiles/.vim/plugged/ale/test/linter/test_foodcritic.vader, dotfiles/.vim/plugged/ale/test/linter/test_fortran_fortls.vader, dotfiles/.vim/plugged/ale/test/linter/test_fsc.vader, dotfiles/.vim/plugged/ale/test/linter/test_fusionlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_gawk.vader, dotfiles/.vim/plugged/ale/test/linter/test_gfortran.vader, dotfiles/.vim/plugged/ale/test/linter/test_ghdl.vader, dotfiles/.vim/plugged/ale/test/linter/test_gitlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_glslang.vader, dotfiles/.vim/plugged/ale/test/linter/test_glslls.vader, dotfiles/.vim/plugged/ale/test/linter/test_gobuild.vader, dotfiles/.vim/plugged/ale/test/linter/test_gofmt.vader, dotfiles/.vim/plugged/ale/test/linter/test_golangci_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_golangserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_golint.vader, dotfiles/.vim/plugged/ale/test/linter/test_gometalinter.vader, dotfiles/.vim/plugged/ale/test/linter/test_gopls.vader, dotfiles/.vim/plugged/ale/test/linter/test_gosimple.vader, dotfiles/.vim/plugged/ale/test/linter/test_gotype.vader, dotfiles/.vim/plugged/ale/test/linter/test_govet.vader, dotfiles/.vim/plugged/ale/test/linter/test_graphql_gqlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_haml_hamllint.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_cabal_ghc.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_ghc.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_ghc_mod.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_hdevtools.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_hie.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_hlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_hls.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_stack_build.vader, dotfiles/.vim/plugged/ale/test/linter/test_haskell_stack_ghc.vader, dotfiles/.vim/plugged/ale/test/linter/test_hdl_checker_options.vader, dotfiles/.vim/plugged/ale/test/linter/test_html_stylelint.vader, dotfiles/.vim/plugged/ale/test/linter/test_htmlhint.vader, dotfiles/.vim/plugged/ale/test/linter/test_ibm_openapi_validator.vader, dotfiles/.vim/plugged/ale/test/linter/test_idris.vader, dotfiles/.vim/plugged/ale/test/linter/test_ink_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_inko_inko.vader, dotfiles/.vim/plugged/ale/test/linter/test_ispc_ispc.vader, dotfiles/.vim/plugged/ale/test/linter/test_iverilog.vader, dotfiles/.vim/plugged/ale/test/linter/test_javac.vader, dotfiles/.vim/plugged/ale/test/linter/test_javalsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_javascript_deno_lsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_javascript_tsserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_jq.vader, dotfiles/.vim/plugged/ale/test/linter/test_jscs.vader, dotfiles/.vim/plugged/ale/test/linter/test_jshint.vader, dotfiles/.vim/plugged/ale/test/linter/test_jsonnet_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_jsonnetfmt.vader, dotfiles/.vim/plugged/ale/test/linter/test_julia_languageserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_kotlin_languageserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_kotlinc.vader, dotfiles/.vim/plugged/ale/test/linter/test_languagetool.vader, dotfiles/.vim/plugged/ale/test/linter/test_less_stylelint.vader, dotfiles/.vim/plugged/ale/test/linter/test_lessc.vader, dotfiles/.vim/plugged/ale/test/linter/test_lintr.vader, dotfiles/.vim/plugged/ale/test/linter/test_llc.vader, dotfiles/.vim/plugged/ale/test/linter/test_lua_selene.vader, dotfiles/.vim/plugged/ale/test/linter/test_luac.vader, dotfiles/.vim/plugged/ale/test/linter/test_luacheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_markdown_markdownlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_markdown_mdl.vader, dotfiles/.vim/plugged/ale/test/linter/test_markdown_vale.vader, dotfiles/.vim/plugged/ale/test/linter/test_mercury_mmc.vader, dotfiles/.vim/plugged/ale/test/linter/test_mypy.vader, dotfiles/.vim/plugged/ale/test/linter/test_naga.vader, dotfiles/.vim/plugged/ale/test/linter/test_nagelfar.vader, dotfiles/.vim/plugged/ale/test/linter/test_nasm_nasm.vader, dotfiles/.vim/plugged/ale/test/linter/test_nimlsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_nix_statix.vader, dotfiles/.vim/plugged/ale/test/linter/test_objc_ccls.vader, dotfiles/.vim/plugged/ale/test/linter/test_ocaml_ocamllsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_ocaml_ols.vader, dotfiles/.vim/plugged/ale/test/linter/test_ocamlinterface_ocamllsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_openscad_sca2d.vader, dotfiles/.vim/plugged/ale/test/linter/test_perl.vader, dotfiles/.vim/plugged/ale/test/linter/test_perl6.vader, dotfiles/.vim/plugged/ale/test/linter/test_perlcritic.vader, dotfiles/.vim/plugged/ale/test/linter/test_php.vader, dotfiles/.vim/plugged/ale/test/linter/test_php_intelephense.vader, dotfiles/.vim/plugged/ale/test/linter/test_php_langserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_phpactor.vader, dotfiles/.vim/plugged/ale/test/linter/test_phpcs.vader, dotfiles/.vim/plugged/ale/test/linter/test_phpmd.vader, dotfiles/.vim/plugged/ale/test/linter/test_phpstan.vader, dotfiles/.vim/plugged/ale/test/linter/test_pony_ponyc.vader, dotfiles/.vim/plugged/ale/test/linter/test_prospector.vader, dotfiles/.vim/plugged/ale/test/linter/test_proto.vader, dotfiles/.vim/plugged/ale/test/linter/test_protolint.vader, dotfiles/.vim/plugged/ale/test/linter/test_psalm.vader, dotfiles/.vim/plugged/ale/test/linter/test_puglint.vader, dotfiles/.vim/plugged/ale/test/linter/test_purescript_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_pycodestyle.vader, dotfiles/.vim/plugged/ale/test/linter/test_pydocstyle.vader, dotfiles/.vim/plugged/ale/test/linter/test_pyflakes.vader, dotfiles/.vim/plugged/ale/test/linter/test_pylama.vader, dotfiles/.vim/plugged/ale/test/linter/test_pylint.vader, dotfiles/.vim/plugged/ale/test/linter/test_pylsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_pyre.vader, dotfiles/.vim/plugged/ale/test/linter/test_pyrex_cython.vader, dotfiles/.vim/plugged/ale/test/linter/test_pyright.vader, dotfiles/.vim/plugged/ale/test/linter/test_qmlfmt.vader, dotfiles/.vim/plugged/ale/test/linter/test_r_languageserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_racket_langserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_racket_raco.vader, dotfiles/.vim/plugged/ale/test/linter/test_rails_best_practices.vader, dotfiles/.vim/plugged/ale/test/linter/test_reason_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_reason_ols.vader, dotfiles/.vim/plugged/ale/test/linter/test_reek.vader, dotfiles/.vim/plugged/ale/test/linter/test_rego_opacheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_remark_lint.vader, dotfiles/.vim/plugged/ale/test/linter/test_revive.vader, dotfiles/.vim/plugged/ale/test/linter/test_rflint.vader, dotfiles/.vim/plugged/ale/test/linter/test_rnix.vader, dotfiles/.vim/plugged/ale/test/linter/test_rst_textlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_rubocop.vader, dotfiles/.vim/plugged/ale/test/linter/test_ruby.vader, dotfiles/.vim/plugged/ale/test/linter/test_ruby_debride.vader, dotfiles/.vim/plugged/ale/test/linter/test_ruby_solargraph.vader, dotfiles/.vim/plugged/ale/test/linter/test_rust_analyzer.vader, dotfiles/.vim/plugged/ale/test/linter/test_rust_rls.vader, dotfiles/.vim/plugged/ale/test/linter/test_rustc.vader, dotfiles/.vim/plugged/ale/test/linter/test_ruumba.vader, dotfiles/.vim/plugged/ale/test/linter/test_sass_sasslint.vader, dotfiles/.vim/plugged/ale/test/linter/test_scala_metals.vader, dotfiles/.vim/plugged/ale/test/linter/test_scala_sbtserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_scalac.vader, dotfiles/.vim/plugged/ale/test/linter/test_scalastyle.vader, dotfiles/.vim/plugged/ale/test/linter/test_scss_sasslint.vader, dotfiles/.vim/plugged/ale/test/linter/test_scss_stylelint.vader, dotfiles/.vim/plugged/ale/test/linter/test_shellcheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_slimlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_solc.vader, dotfiles/.vim/plugged/ale/test/linter/test_solc_commit.vader, dotfiles/.vim/plugged/ale/test/linter/test_solhint.vader, dotfiles/.vim/plugged/ale/test/linter/test_sorbet.vader, dotfiles/.vim/plugged/ale/test/linter/test_spectral.vader, dotfiles/.vim/plugged/ale/test/linter/test_sqllint.vader, dotfiles/.vim/plugged/ale/test/linter/test_standard.vader, dotfiles/.vim/plugged/ale/test/linter/test_standardrb.vader, dotfiles/.vim/plugged/ale/test/linter/test_standardts.vader, dotfiles/.vim/plugged/ale/test/linter/test_starknet.vader, dotfiles/.vim/plugged/ale/test/linter/test_staticcheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_sugarss_stylelint.vader, dotfiles/.vim/plugged/ale/test/linter/test_svelteserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_swaglint.vader, dotfiles/.vim/plugged/ale/test/linter/test_swift_appleswiftformat.vader, dotfiles/.vim/plugged/ale/test/linter/test_swift_sourcekitlsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_swiftlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_systemd_analyze.vader, dotfiles/.vim/plugged/ale/test/linter/test_terraform_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_terraform_lsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_terraform_terraform.vader, dotfiles/.vim/plugged/ale/test/linter/test_terraform_tflint.vader, dotfiles/.vim/plugged/ale/test/linter/test_terraform_tfsec.vader, dotfiles/.vim/plugged/ale/test/linter/test_tex_lacheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_tex_textlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_texlab.vader, dotfiles/.vim/plugged/ale/test/linter/test_textlint.vader, dotfiles/.vim/plugged/ale/test/linter/test_thrift.vader, dotfiles/.vim/plugged/ale/test/linter/test_thriftcheck.vader, dotfiles/.vim/plugged/ale/test/linter/test_tslint.vader, dotfiles/.vim/plugged/ale/test/linter/test_typescript_deno_lsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_typescript_tsserver.vader, dotfiles/.vim/plugged/ale/test/linter/test_unimport.vader, dotfiles/.vim/plugged/ale/test/linter/test_v_command_callback.vader, dotfiles/.vim/plugged/ale/test/linter/test_vcom.vader, dotfiles/.vim/plugged/ale/test/linter/test_verilator.vader, dotfiles/.vim/plugged/ale/test/linter/test_vim_vimls.vader, dotfiles/.vim/plugged/ale/test/linter/test_vint.vader, dotfiles/.vim/plugged/ale/test/linter/test_vlog.vader, dotfiles/.vim/plugged/ale/test/linter/test_volar.vader, dotfiles/.vim/plugged/ale/test/linter/test_vulture.vader, dotfiles/.vim/plugged/ale/test/linter/test_write_good.vader, dotfiles/.vim/plugged/ale/test/linter/test_xmllint.vader, dotfiles/.vim/plugged/ale/test/linter/test_xo.vader, dotfiles/.vim/plugged/ale/test/linter/test_xots.vader, dotfiles/.vim/plugged/ale/test/linter/test_xvhdl.vader, dotfiles/.vim/plugged/ale/test/linter/test_xvlog.vader, dotfiles/.vim/plugged/ale/test/linter/test_yaml_ls.vader, dotfiles/.vim/plugged/ale/test/linter/test_yang_lsp.vader, dotfiles/.vim/plugged/ale/test/linter/test_zeek.vader, dotfiles/.vim/plugged/ale/test/linter/test_zig_zls.vader, dotfiles/.vim/plugged/ale/test/lsp/test_closing_documents.vader, dotfiles/.vim/plugged/ale/test/lsp/test_did_save_event.vader, dotfiles/.vim/plugged/ale/test/lsp/test_engine_lsp_response_handling.vader, dotfiles/.vim/plugged/ale/test/lsp/test_handling_window_requests.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_client_messages.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_command_formatting.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_connections.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_custom_request.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_error_parsing.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_root_detection.vader, dotfiles/.vim/plugged/ale/test/lsp/test_lsp_startup.vader, dotfiles/.vim/plugged/ale/test/lsp/test_other_initialize_message_handling.vader, dotfiles/.vim/plugged/ale/test/lsp/test_read_lsp_diagnostics.vader, dotfiles/.vim/plugged/ale/test/lsp/test_reset_lsp.vader, dotfiles/.vim/plugged/ale/test/lsp/test_update_config.vader, dotfiles/.vim/plugged/ale/test/python/test_deoplete_source.py, dotfiles/.vim/plugged/ale/test/script/block-padding-checker, dotfiles/.vim/plugged/ale/test/script/check-duplicate-tags, dotfiles/.vim/plugged/ale/test/script/check-supported-tools-tables, dotfiles/.vim/plugged/ale/test/script/check-tag-alignment, dotfiles/.vim/plugged/ale/test/script/check-tag-references, dotfiles/.vim/plugged/ale/test/script/check-toc, dotfiles/.vim/plugged/ale/test/script/custom-checks, dotfiles/.vim/plugged/ale/test/script/custom-linting-rules, dotfiles/.vim/plugged/ale/test/script/dumb_named_pipe_server.py, dotfiles/.vim/plugged/ale/test/script/dumb_tcp_client.py, dotfiles/.vim/plugged/ale/test/script/dumb_tcp_server.py, dotfiles/.vim/plugged/ale/test/script/run-vader-tests, dotfiles/.vim/plugged/ale/test/script/run-vint, dotfiles/.vim/plugged/ale/test/sign/test_linting_sets_signs.vader, dotfiles/.vim/plugged/ale/test/sign/test_sign_column_highlighting.vader, dotfiles/.vim/plugged/ale/test/sign/test_sign_limits.vader, dotfiles/.vim/plugged/ale/test/sign/test_sign_parsing.vader, dotfiles/.vim/plugged/ale/test/sign/test_sign_placement.vader, dotfiles/.vim/plugged/ale/test/test-files/.circleci/config.yml, dotfiles/.vim/plugged/ale/test/test-files/ada/testfile.adb, dotfiles/.vim/plugged/ale/test/test-files/alex/node-modules/node_modules/.bin/alex, dotfiles/.vim/plugged/ale/test/test-files/alex/node-modules-2/node_modules/alex/cli.js, dotfiles/.vim/plugged/ale/test/test-files/angular/node_modules/@angular/language-server/bin/ngserver, dotfiles/.vim/plugged/ale/test/test-files/angular/node_modules/@angular/language-service/dummy, dotfiles/.vim/plugged/ale/test/test-files/ant/ant-project/build.xml, dotfiles/.vim/plugged/ale/test/test-files/ant/bin/ant, dotfiles/.vim/plugged/ale/test/test-files/ant/bin/ant.exe, dotfiles/.vim/plugged/ale/test/test-files/bazel/BUILD, dotfiles/.vim/plugged/ale/test/test-files/bazel/WORKSPACE, dotfiles/.vim/plugged/ale/test/test-files/bazel/defs.bzl, dotfiles/.vim/plugged/ale/test/test-files/bib/dummy.bib, dotfiles/.vim/plugged/ale/test/test-files/c/build_compile_commands_project/build/bad_folder_to_test_priority, dotfiles/.vim/plugged/ale/test/test-files/c/build_compile_commands_project/build/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/c/configure_project/include/test.h, dotfiles/.vim/plugged/ale/test/test-files/c/configure_project/subdir/Makefile, dotfiles/.vim/plugged/ale/test/test-files/c/configure_project/Makefile, dotfiles/.vim/plugged/ale/test/test-files/c/configure_project/configure, dotfiles/.vim/plugged/ale/test/test-files/c/git_and_nested_makefiles/include/test.h, dotfiles/.vim/plugged/ale/test/test-files/c/git_and_nested_makefiles/src/Makefile, dotfiles/.vim/plugged/ale/test/test-files/c/gnumakefile_project/GNUmakefile, dotfiles/.vim/plugged/ale/test/test-files/c/gnumakefile_project/file.c, dotfiles/.vim/plugged/ale/test/test-files/c/h_file_project/subdir/dummy, dotfiles/.vim/plugged/ale/test/test-files/c/h_file_project/Makefile, dotfiles/.vim/plugged/ale/test/test-files/c/h_file_project/test.h, dotfiles/.vim/plugged/ale/test/test-files/c/hpp_file_project/subdir/dummy, dotfiles/.vim/plugged/ale/test/test-files/c/hpp_file_project/Makefile, dotfiles/.vim/plugged/ale/test/test-files/c/hpp_file_project/test.hpp, dotfiles/.vim/plugged/ale/test/test-files/c/json_project/build/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/c/json_project/include/test.h, dotfiles/.vim/plugged/ale/test/test-files/c/json_project/subdir/dummy, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/include/test.h, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/subdir/args, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/subdir/dummy, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/subdir/file.c, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/Makefile, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/_astylerc, dotfiles/.vim/plugged/ale/test/test-files/c/makefile_project/args, dotfiles/.vim/plugged/ale/test/test-files/c/dummy.c, dotfiles/.vim/plugged/ale/test/test-files/cargo/workspace_paths/subpath/Cargo.toml, dotfiles/.vim/plugged/ale/test/test-files/cargo/workspace_paths/Cargo.toml, dotfiles/.vim/plugged/ale/test/test-files/cargo/Cargo.toml, dotfiles/.vim/plugged/ale/test/test-files/ccls/with_build_dir/unusual_build_dir_name/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/ccls/with_ccls/.ccls, dotfiles/.vim/plugged/ale/test/test-files/ccls/with_ccls-root/.ccls-root, dotfiles/.vim/plugged/ale/test/test-files/ccls/with_compile_commands_json/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/checkstyle/other_config.xml, dotfiles/.vim/plugged/ale/test/test-files/clangd/with_build_dir/unusual_build_dir_name/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/clangd/with_compile_commands/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/clangformat/with_clangformat/.clang-format, dotfiles/.vim/plugged/ale/test/test-files/cpp/.astylerc, dotfiles/.vim/plugged/ale/test/test-files/cpp/dummy.cpp, dotfiles/.vim/plugged/ale/test/test-files/cppcheck/one/two/three/file.c, dotfiles/.vim/plugged/ale/test/test-files/cppcheck/one/two/three/file.cpp, dotfiles/.vim/plugged/ale/test/test-files/cppcheck/one/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/cppcheck/with_build_dir/build/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/cquery/build/compile_commands.json, dotfiles/.vim/plugged/ale/test/test-files/cquery/with_cquery/.cquery, dotfiles/.vim/plugged/ale/test/test-files/cspell/node-modules/node_modules/.bin/cspell, dotfiles/.vim/plugged/ale/test/test-files/cspell/node-modules-2/node_modules/cspell/bin.js, dotfiles/.vim/plugged/ale/test/test-files/csslint/other-app/testfile.css, dotfiles/.vim/plugged/ale/test/test-files/csslint/some-app/subdir/testfile.css, dotfiles/.vim/plugged/ale/test/test-files/csslint/some-app/.csslintrc, dotfiles/.vim/plugged/ale/test/test-files/cucumber/features/step_definitions/base_steps.rb, dotfiles/.vim/plugged/ale/test/test-files/cucumber/features/cuke.feature, dotfiles/.vim/plugged/ale/test/test-files/d/test.d, dotfiles/.vim/plugged/ale/test/test-files/dart/.packages, dotfiles/.vim/plugged/ale/test/test-files/dart/testfile.dart, dotfiles/.vim/plugged/ale/test/test-files/dprint/blank.ts, dotfiles/.vim/plugged/ale/test/test-files/dprint/dprint.json, dotfiles/.vim/plugged/ale/test/test-files/elixir/mix_project/lib/app.ex, dotfiles/.vim/plugged/ale/test/test-files/elixir/mix_project/mix.exs, dotfiles/.vim/plugged/ale/test/test-files/elixir/umbrella_project/apps/app1/lib/app.ex, dotfiles/.vim/plugged/ale/test/test-files/elixir/umbrella_project/apps/app1/mix.exs, dotfiles/.vim/plugged/ale/test/test-files/elixir/umbrella_project/apps/app2/lib/app.ex, dotfiles/.vim/plugged/ale/test/test-files/elixir/umbrella_project/apps/app2/mix.exs, dotfiles/.vim/plugged/ale/test/test-files/elixir/umbrella_project/mix.exs, dotfiles/.vim/plugged/ale/test/test-files/elixir/testfile.ex, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp/node_modules/.bin/elm, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp/node_modules/.bin/elm-test, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp/src/Main.elm, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp/tests/TestSuite.elm, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp/elm.json, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp-notests/node_modules/.bin/elm, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp-notests/tests/TestMain.elm, dotfiles/.vim/plugged/ale/test/test-files/elm/newapp-notests/elm.json, dotfiles/.vim/plugged/ale/test/test-files/elm/node_modules/.bin/elm-format, dotfiles/.vim/plugged/ale/test/test-files/elm/oldapp/node_modules/.bin/elm, dotfiles/.vim/plugged/ale/test/test-files/elm/oldapp/node_modules/.bin/elm-test, dotfiles/.vim/plugged/ale/test/test-files/elm/oldapp/src/Main.elm, dotfiles/.vim/plugged/ale/test/test-files/elm/oldapp/tests/TestSuite.elm, dotfiles/.vim/plugged/ale/test/test-files/elm/oldapp/elm-package.json, dotfiles/.vim/plugged/ale/test/test-files/elm/src/subdir/testfile.elm, dotfiles/.vim/plugged/ale/test/test-files/eruby/dummy.html.erb, dotfiles/.vim/plugged/ale/test/test-files/eslint/app-with-eslint-d/node_modules/.bin/eslint_d, dotfiles/.vim/plugged/ale/test/test-files/eslint/node_modules/.bin/eslint, dotfiles/.vim/plugged/ale/test/test-files/eslint/other-app/subdir/testfile.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/node_modules/eslint/bin/eslint.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/node_modules/standard/bin/cmd.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/node_modules/stylelint/bin/stylelint.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/node_modules/xo/cli.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/subdir/testfile.css, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/subdir/testfile.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/subdir/testfile.ts, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/subdir-with-config/.eslintrc, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/subdir-with-package-json/node_modules/.gitkeep, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/subdir-with-package-json/package.json, dotfiles/.vim/plugged/ale/test/test-files/eslint/react-app/.eslintrc.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/yarn2-app/.yarn/sdks/eslint/bin/eslint.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/yarn2-app/subdir/testfile.js, dotfiles/.vim/plugged/ale/test/test-files/eslint/package.json, dotfiles/.vim/plugged/ale/test/test-files/fecs/fecs, dotfiles/.vim/plugged/ale/test/test-files/fecs/fecs.exe, dotfiles/.vim/plugged/ale/test/test-files/fish/testfile.fish, dotfiles/.vim/plugged/ale/test/test-files/flow/a/sub/dummy, dotfiles/.vim/plugged/ale/test/test-files/flow/a/.flowconfig, dotfiles/.vim/plugged/ale/test/test-files/flow/b/sub/dummy, dotfiles/.vim/plugged/ale/test/test-files/fortls-project/.fortls, dotfiles/.vim/plugged/ale/test/test-files/go/go1/prj1/file.go, dotfiles/.vim/plugged/ale/test/test-files/go/go2/prj2/file.go, dotfiles/.vim/plugged/ale/test/test-files/go/gopath/bin/gopls, dotfiles/.vim/plugged/ale/test/test-files/go/gopath/bin/staticcheck, dotfiles/.vim/plugged/ale/test/test-files/go/go.mod, dotfiles/.vim/plugged/ale/test/test-files/go/testfile.go, dotfiles/.vim/plugged/ale/test/test-files/go/testfile2.go, dotfiles/.vim/plugged/ale/test/test-files/gradle/build-gradle-project/src/main/kotlin/dummy.kt, dotfiles/.vim/plugged/ale/test/test-files/gradle/build-gradle-project/build.gradle, dotfiles/.vim/plugged/ale/test/test-files/gradle/non-gradle-project/src/main/kotlin/dummy.kt, dotfiles/.vim/plugged/ale/test/test-files/gradle/settings-gradle-project/src/main/kotlin/dummy.kt, dotfiles/.vim/plugged/ale/test/test-files/gradle/settings-gradle-project/settings.gradle, dotfiles/.vim/plugged/ale/test/test-files/gradle/unwrapped-project/src/main/kotlin/dummy.kt, dotfiles/.vim/plugged/ale/test/test-files/gradle/unwrapped-project/build.gradle, dotfiles/.vim/plugged/ale/test/test-files/gradle/unwrapped-project/settings.gradle, dotfiles/.vim/plugged/ale/test/test-files/gradle/wrapped-project/src/main/kotlin/dummy.kt, dotfiles/.vim/plugged/ale/test/test-files/gradle/wrapped-project/build.gradle, dotfiles/.vim/plugged/ale/test/test-files/gradle/wrapped-project/gradlew, dotfiles/.vim/plugged/ale/test/test-files/gradle/wrapped-project/settings.gradle, dotfiles/.vim/plugged/ale/test/test-files/gradle/gradle, dotfiles/.vim/plugged/ale/test/test-files/hamllint/haml-lint-and-rubocop/subdir/file.haml, dotfiles/.vim/plugged/ale/test/test-files/hamllint/haml-lint-and-rubocop/.haml-lint.yml, dotfiles/.vim/plugged/ale/test/test-files/hamllint/haml-lint-and-rubocop/.rubocop.yml, dotfiles/.vim/plugged/ale/test/test-files/hamllint/haml-lint-yml/subdir/file.haml, dotfiles/.vim/plugged/ale/test/test-files/hamllint/haml-lint-yml/.haml-lint.yml, dotfiles/.vim/plugged/ale/test/test-files/hamllint/rubocop-yml/subdir/file.haml, dotfiles/.vim/plugged/ale/test/test-files/hamllint/rubocop-yml/.rubocop.yml, dotfiles/.vim/plugged/ale/test/test-files/hdl_server/with_config_file/.hdl_checker.config, dotfiles/.vim/plugged/ale/test/test-files/hdl_server/with_config_file/_hdl_checker.config, dotfiles/.vim/plugged/ale/test/test-files/hdl_server/with_config_file/foo.vhd, dotfiles/.vim/plugged/ale/test/test-files/hdl_server/with_git/files/foo.vhd, dotfiles/.vim/plugged/ale/test/test-files/hdl_server/foo.vhd, dotfiles/.vim/plugged/ale/test/test-files/hie_paths/file.hs, dotfiles/.vim/plugged/ale/test/test-files/html_beautify/html-beautify, dotfiles/.vim/plugged/ale/test/test-files/html_beautify/test.html, dotfiles/.vim/plugged/ale/test/test-files/htmlhint/node_modules/.bin/htmlhint, dotfiles/.vim/plugged/ale/test/test-files/htmlhint/with_config/.htmlhintrc, dotfiles/.vim/plugged/ale/test/test-files/ink/story/main.ink, dotfiles/.vim/plugged/ale/test/test-files/inko/tests/test/test_foo.inko, dotfiles/.vim/plugged/ale/test/test-files/inko/test.inko, dotfiles/.vim/plugged/ale/test/test-files/java/no_main/src/test/java/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/java/with_jaxb/src/main/java/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/java/with_jaxb/src/main/jaxb/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/java/with_main/build/gen/main/java/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/java/with_main/build/gen2/main/java/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/java/with_main/src/main/java/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/java/with_main/src/test/java/com/something/dummy, dotfiles/.vim/plugged/ale/test/test-files/javascript/test.js, dotfiles/.vim/plugged/ale/test/test-files/javascript_deno/custom_import_map.json, dotfiles/.vim/plugged/ale/test/test-files/javascript_deno/import_map.json, dotfiles/.vim/plugged/ale/test/test-files/javascript_deno/main.js, dotfiles/.vim/plugged/ale/test/test-files/javascript_deno/tsconfig.json, dotfiles/.vim/plugged/ale/test/test-files/json/testfile.json, dotfiles/.vim/plugged/ale/test/test-files/jsonlint/app/node_modules/.bin/jsonlint, dotfiles/.vim/plugged/ale/test/test-files/jsonlint/app/src/app.json, dotfiles/.vim/plugged/ale/test/test-files/jsonlint/app-without-jsonlint/src/app.json, dotfiles/.vim/plugged/ale/test/test-files/jsonlint/node_modules/jsonlint/lib/cli.js, dotfiles/.vim/plugged/ale/test/test-files/julia/REQUIRE, dotfiles/.vim/plugged/ale/test/test-files/julia/test.jl, dotfiles/.vim/plugged/ale/test/test-files/kotlin/testfile.kt, dotfiles/.vim/plugged/ale/test/test-files/lessc/node_modules/.bin/lessc, dotfiles/.vim/plugged/ale/test/test-files/long-line/setup.cfg, dotfiles/.vim/plugged/ale/test/test-files/lua/testfile.lua, dotfiles/.vim/plugged/ale/test/test-files/markdown/testfile.md, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-java-project/module1/src/main/java/dummy1.java, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-java-project/module1/mvnw, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-java-project/module1/mvnw.cmd, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-java-project/module1/pom.xml, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-java-project/module2/src/main/java/dummy2.java, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-java-project/module2/pom.xml, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-kotlin-project/src/main/kotlin/dummy.kt, dotfiles/.vim/plugged/ale/test/test-files/maven/maven-kotlin-project/pom.xml, dotfiles/.vim/plugged/ale/test/test-files/maven/non-maven-project/src/main/java/dummy.java, dotfiles/.vim/plugged/ale/test/test-files/maven/mvn, dotfiles/.vim/plugged/ale/test/test-files/nim/with-git/src/source.nim, dotfiles/.vim/plugged/ale/test/test-files/ocaml/testfile.ml, dotfiles/.vim/plugged/ale/test/test-files/ocamllsp/dune-project, dotfiles/.vim/plugged/ale/test/test-files/ols/node_modules/.bin/ocaml-language-server, dotfiles/.vim/plugged/ale/test/test-files/ols/.merlin, dotfiles/.vim/plugged/ale/test/test-files/pascal/test.pas, dotfiles/.vim/plugged/ale/test/test-files/php/project-with-php-cs-fixer/vendor/bin/php-cs-fixer, dotfiles/.vim/plugged/ale/test/test-files/php/project-with-php-cs-fixer/test.php, dotfiles/.vim/plugged/ale/test/test-files/php/project-with-phpcbf/foo/test.php, dotfiles/.vim/plugged/ale/test/test-files/php/project-with-phpcbf/vendor/bin/phpcbf, dotfiles/.vim/plugged/ale/test/test-files/php/project-with-pint/vendor/bin/pint, dotfiles/.vim/plugged/ale/test/test-files/php/project-with-pint/test.php, dotfiles/.vim/plugged/ale/test/test-files/php/project-without-php-cs-fixer/test.php, dotfiles/.vim/plugged/ale/test/test-files/php/project-without-phpcbf/foo/test.php, dotfiles/.vim/plugged/ale/test/test-files/php/project-without-pint/test.php, dotfiles/.vim/plugged/ale/test/test-files/php/vendor/bin/php-language-server.php, dotfiles/.vim/plugged/ale/test/test-files/php/with-composer/vendor/bin/php-language-server.php, dotfiles/.vim/plugged/ale/test/test-files/php/with-composer/composer.json, dotfiles/.vim/plugged/ale/test/test-files/php/with-git/vendor/bin/php-language-server.php, dotfiles/.vim/plugged/ale/test/test-files/phpcs/project-with-phpcs/foo/test.php, dotfiles/.vim/plugged/ale/test/test-files/phpcs/project-with-phpcs/vendor/bin/phpcs, dotfiles/.vim/plugged/ale/test/test-files/phpcs/project-without-phpcs/foo/test.php, dotfiles/.vim/plugged/ale/test/test-files/prettier/with_config/.prettierrc, dotfiles/.vim/plugged/ale/test/test-files/prettier/with_config/testfile.js, dotfiles/.vim/plugged/ale/test/test-files/prettier/with_prettierignore/src/testfile.js, dotfiles/.vim/plugged/ale/test/test-files/prettier/with_prettierignore/.prettierignore, dotfiles/.vim/plugged/ale/test/test-files/prettier/testfile, dotfiles/.vim/plugged/ale/test/test-files/prettier/testfile.css, dotfiles/.vim/plugged/ale/test/test-files/prettier/testfile.js, dotfiles/.vim/plugged/ale/test/test-files/prettier/testfile.json, dotfiles/.vim/plugged/ale/test/test-files/prettier/testfile.scss, dotfiles/.vim/plugged/ale/test/test-files/prettier/testfile.ts, dotfiles/.vim/plugged/ale/test/test-files/proto/testfile.proto, dotfiles/.vim/plugged/ale/test/test-files/psalm/vendor/bin/psalm, dotfiles/.vim/plugged/ale/test/test-files/puglint/node_modules/.bin/pug-lint, dotfiles/.vim/plugged/ale/test/test-files/puglint/puglint_rc_dir/.pug-lintrc, dotfiles/.vim/plugged/ale/test/test-files/puglint/puglint_rc_js_dir/.pug-lintrc.js, dotfiles/.vim/plugged/ale/test/test-files/puglint/puglint_rc_json_dir/.pug-lintrc.json, dotfiles/.vim/plugged/ale/test/test-files/puglint/package.json, dotfiles/.vim/plugged/ale/test/test-files/puppet/new-style-module/lib/puppet/types/exampletype.rb, dotfiles/.vim/plugged/ale/test/test-files/puppet/new-style-module/template/template.epp, dotfiles/.vim/plugged/ale/test/test-files/puppet/new-style-module/metadata.json, dotfiles/.vim/plugged/ale/test/test-files/puppet/old-style-module/manifests/init.pp, dotfiles/.vim/plugged/ale/test/test-files/puppet/old-style-module/templates/template.epp, dotfiles/.vim/plugged/ale/test/test-files/puppet/dummy.pp, dotfiles/.vim/plugged/ale/test/test-files/purescript/bower/Foo.purs, dotfiles/.vim/plugged/ale/test/test-files/purescript/bower/bower.json, dotfiles/.vim/plugged/ale/test/test-files/purescript/psc-package/Foo.purs, dotfiles/.vim/plugged/ale/test/test-files/purescript/psc-package/psc-package.json, dotfiles/.vim/plugged/ale/test/test-files/purescript/spago/Foo.purs, dotfiles/.vim/plugged/ale/test/test-files/purescript/spago/spago.dhall, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_manifest/namespace/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_manifest/namespace/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_manifest/MANIFEST.in, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_pytest/namespace/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_pytest/namespace/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_pytest/pytest.ini, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_setup/namespace/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_setup/namespace/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_setup/setup.cfg, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_tox/namespace/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_tox/namespace/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/namespace_package_tox/tox.ini, dotfiles/.vim/plugged/ale/test/test-files/python/no_virtualenv/subdir/foo/COMMIT_EDITMSG, dotfiles/.vim/plugged/ale/test/test-files/python/no_virtualenv/subdir/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/no_virtualenv/subdir/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/pipenv/Pipfile.lock, dotfiles/.vim/plugged/ale/test/test-files/python/poetry/poetry.lock, dotfiles/.vim/plugged/ale/test/test-files/python/pyre_configuration_dir/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/pyre_configuration_dir/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/pyre_configuration_dir/.pyre_configuration.local, dotfiles/.vim/plugged/ale/test/test-files/python/python-package-project/package-name/module.py, dotfiles/.vim/plugged/ale/test/test-files/python/python-package-project/.flake8, dotfiles/.vim/plugged/ale/test/test-files/python/with_bandit/namespace/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/with_bandit/namespace/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/with_bandit/.bandit, dotfiles/.vim/plugged/ale/test/test-files/python/with_mypy_ini_and_pytest_ini/tests/testsubfolder/my_tests.py, dotfiles/.vim/plugged/ale/test/test-files/python/with_mypy_ini_and_pytest_ini/tests/pytest.ini, dotfiles/.vim/plugged/ale/test/test-files/python/with_mypy_ini_and_pytest_ini/mypy.ini, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/dir_with_yapf_config/.style.yapf, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/activate, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/autoflake.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/autoimport.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/autopep8.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/black.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/flake8.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/flakehell.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/gitlint.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/isort.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/mypy.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/pyflakes.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/pylama.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/pylint.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/pylsp.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/pyre.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/reorder-python-imports.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/tidy-imports.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/unimport.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/vulture.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/yamlfix.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/Scripts/yapf.exe, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/activate, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/autoflake, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/autoimport, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/autopep8, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/black, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/flake8, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/flakehell, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/gitlint, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/isort, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/mypy, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/pyflakes, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/pylama, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/pylint, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/pylsp, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/pyre, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/reorder-python-imports, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/tidy-imports, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/unimport, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/vulture, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/yamlfix, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/env/bin/yapf, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/subdir/foo/COMMIT_EDITMSG, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/subdir/foo/__init__.py, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/subdir/foo/bar.py, dotfiles/.vim/plugged/ale/test/test-files/python/with_virtualenv/subdir/foo/bar.pyi, dotfiles/.vim/plugged/ale/test/test-files/r/.Rprofile, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/a/b/c/foo.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/a/b/c/init.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/a/b/foo.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/a/b/init.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/a/foo.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/a/init.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/foo.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/many-inits/init.rkt, dotfiles/.vim/plugged/ale/test/test-files/racket/simple-script/foo.rkt, dotfiles/.vim/plugged/ale/test/test-files/reasonml/bsconfig.json, dotfiles/.vim/plugged/ale/test/test-files/reasonml/testfile.re, dotfiles/.vim/plugged/ale/test/test-files/remark_lint/with_bin_path/node_modules/.bin/remark, dotfiles/.vim/plugged/ale/test/test-files/ruby/not_a_rails_app/file.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_rails_app/app/models/thing.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_rails_app/app/views/my_great_view.html.erb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_rails_app/app/dummy.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_rails_app/config/dummy.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_rails_app/db/dummy.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_ruby_app1/lib/file.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_ruby_app1/Rakefile, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_ruby_app2/lib/file.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_ruby_app2/Gemfile, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_ruby_app3/lib/file.rb, dotfiles/.vim/plugged/ale/test/test-files/ruby/valid_ruby_app3/.solargraph.yml, dotfiles/.vim/plugged/ale/test/test-files/ruby/with_config/.rubocop.yml, dotfiles/.vim/plugged/ale/test/test-files/ruby/with_config/.standard.yml, dotfiles/.vim/plugged/ale/test/test-files/ruby/dummy.rb, dotfiles/.vim/plugged/ale/test/test-files/rust/cargo/Cargo.toml, dotfiles/.vim/plugged/ale/test/test-files/rust/cargo/testfile.rs, dotfiles/.vim/plugged/ale/test/test-files/rust/rust-project/rust-project.json, dotfiles/.vim/plugged/ale/test/test-files/rust/rust-project/testfile.rs, dotfiles/.vim/plugged/ale/test/test-files/sasslint/with-bin/node_modules/.bin/sass-lint, dotfiles/.vim/plugged/ale/test/test-files/sasslint/with-source/node_modules/sass-lint/bin/sass-lint.js, dotfiles/.vim/plugged/ale/test/test-files/scala/invalid_sbt_project/Main.scala, dotfiles/.vim/plugged/ale/test/test-files/scala/valid_sbt_project/Main.scala, dotfiles/.vim/plugged/ale/test/test-files/scala/valid_sbt_project/build.sbt, dotfiles/.vim/plugged/ale/test/test-files/scala/dummy.scala, dotfiles/.vim/plugged/ale/test/test-files/slimlint/subdir/file.slim, dotfiles/.vim/plugged/ale/test/test-files/slimlint/.rubocop.yml, dotfiles/.vim/plugged/ale/test/test-files/smlnj/cm/path/to/bar.sml, dotfiles/.vim/plugged/ale/test/test-files/smlnj/cm/foo.sml, dotfiles/.vim/plugged/ale/test/test-files/smlnj/cm/sources.cm, dotfiles/.vim/plugged/ale/test/test-files/smlnj/file/qux.sml, dotfiles/.vim/plugged/ale/test/test-files/solhint/node_modules/.bin/solhint, dotfiles/.vim/plugged/ale/test/test-files/solhint/node_modules/solhint/index.js, dotfiles/.vim/plugged/ale/test/test-files/solhint/Contract.sol, dotfiles/.vim/plugged/ale/test/test-files/solhint/package.json, dotfiles/.vim/plugged/ale/test/test-files/spectral/node_modules/.bin/spectral, dotfiles/.vim/plugged/ale/test/test-files/spectral/openapi.yaml, dotfiles/.vim/plugged/ale/test/test-files/stack/stack.yaml, dotfiles/.vim/plugged/ale/test/test-files/standard/with-bin/node_modules/.bin/standard, dotfiles/.vim/plugged/ale/test/test-files/standard/with-cmd/node_modules/standard/bin/cmd.js, dotfiles/.vim/plugged/ale/test/test-files/stylelint/node_modules/.bin/stylelint, dotfiles/.vim/plugged/ale/test/test-files/swaglint/docs/swagger.yaml, dotfiles/.vim/plugged/ale/test/test-files/swaglint/node_modules/.bin/swaglint, dotfiles/.vim/plugged/ale/test/test-files/swift/non-swift-package-project/src/folder/dummy.swift, dotfiles/.vim/plugged/ale/test/test-files/swift/swift-package-project/src/folder/dummy.swift, dotfiles/.vim/plugged/ale/test/test-files/swift/swift-package-project/Package.swift, dotfiles/.vim/plugged/ale/test/test-files/swift/swift-package-project-with-config/src/folder/dummy.swift, dotfiles/.vim/plugged/ale/test/test-files/swift/swift-package-project-with-config/.swift-format, dotfiles/.vim/plugged/ale/test/test-files/swift/swift-package-project-with-config/Package.swift, dotfiles/.vim/plugged/ale/test/test-files/swift/dummy.swift, dotfiles/.vim/plugged/ale/test/test-files/swiftlint/cocoapods/Pods/SwiftLint/swiftlint, dotfiles/.vim/plugged/ale/test/test-files/swiftlint/cocoapods-and-react-native/Pods/SwiftLint/swiftlint, dotfiles/.vim/plugged/ale/test/test-files/swiftlint/cocoapods-and-react-native/ios/Pods/SwiftLint/swiftlint, dotfiles/.vim/plugged/ale/test/test-files/swiftlint/react-native/ios/Pods/SwiftLint/swiftlint, dotfiles/.vim/plugged/ale/test/test-files/terraform/.terraform/dummy, dotfiles/.vim/plugged/ale/test/test-files/terraform/main.tf, dotfiles/.vim/plugged/ale/test/test-files/tex/sample1.tex, dotfiles/.vim/plugged/ale/test/test-files/tex/sample2.tex, dotfiles/.vim/plugged/ale/test/test-files/tex/testfile.tex, dotfiles/.vim/plugged/ale/test/test-files/textlint/with_bin_path/node_modules/.bin/textlint, dotfiles/.vim/plugged/ale/test/test-files/textlint/with_textlint_bin_path/node_modules/textlint/bin/textlint.js, dotfiles/.vim/plugged/ale/test/test-files/tflint/foo/.tflint.hcl, dotfiles/.vim/plugged/ale/test/test-files/tflint/foo/bar.tf, dotfiles/.vim/plugged/ale/test/test-files/tfsec/json/.tfsec/config.json, dotfiles/.vim/plugged/ale/test/test-files/tfsec/json/main.tf, dotfiles/.vim/plugged/ale/test/test-files/tfsec/yml/.tfsec/config.yml, dotfiles/.vim/plugged/ale/test/test-files/tfsec/yml/main.tf, dotfiles/.vim/plugged/ale/test/test-files/tidy/.tidyrc, dotfiles/.vim/plugged/ale/test/test-files/tidy/test.html, dotfiles/.vim/plugged/ale/test/test-files/tidy/tidy, dotfiles/.vim/plugged/ale/test/test-files/tidy/tidy.exe, dotfiles/.vim/plugged/ale/test/test-files/top/ale-special-directory-name-dont-use-this-please/empty-file, dotfiles/.vim/plugged/ale/test/test-files/top/middle/bottom/dummy.txt, dotfiles/.vim/plugged/ale/test/test-files/top/example.ini, dotfiles/.vim/plugged/ale/test/test-files/tsserver/src/level-1/level-2/file3.ts, dotfiles/.vim/plugged/ale/test/test-files/tsserver/src/level-1/file2.ts, dotfiles/.vim/plugged/ale/test/test-files/tsserver/src/level-1/tsconfig.json, dotfiles/.vim/plugged/ale/test/test-files/tsserver/src/file1.ts, dotfiles/.vim/plugged/ale/test/test-files/tsserver/tsconfig.json, dotfiles/.vim/plugged/ale/test/test-files/typescript/custom_import_map.json, dotfiles/.vim/plugged/ale/test/test-files/typescript/import_map.json, dotfiles/.vim/plugged/ale/test/test-files/typescript/test.ts, dotfiles/.vim/plugged/ale/test/test-files/typescript/tsconfig.json, dotfiles/.vim/plugged/ale/test/test-files/vim/invalid_vim_project/test.vim, dotfiles/.vim/plugged/ale/test/test-files/vim/node_modules/.bin/vim-language-server, dotfiles/.vim/plugged/ale/test/test-files/vim/path_with_autoload/autoload/test.vim, dotfiles/.vim/plugged/ale/test/test-files/vim/path_with_autoload/test.vim, dotfiles/.vim/plugged/ale/test/test-files/vim/path_with_initvim/init.vim, dotfiles/.vim/plugged/ale/test/test-files/vim/path_with_plugin/plugin/test.vim, dotfiles/.vim/plugged/ale/test/test-files/vim/path_with_plugin/test.vim, dotfiles/.vim/plugged/ale/test/test-files/vim/path_with_vimrc/.vimrc, dotfiles/.vim/plugged/ale/test/test-files/volar/node_modules/.bin/vue-language-server, dotfiles/.vim/plugged/ale/test/test-files/volar/node_modules/typescript/lib/tsserverlibrary.js, dotfiles/.vim/plugged/ale/test/test-files/volar/src/App.vue, dotfiles/.vim/plugged/ale/test/test-files/volar/package.json, dotfiles/.vim/plugged/ale/test/test-files/write-good/node-modules/node_modules/.bin/write-good, dotfiles/.vim/plugged/ale/test/test-files/write-good/node-modules-2/node_modules/write-good/bin/write-good.js, dotfiles/.vim/plugged/ale/test/test-files/xo/monorepo/node_modules/xo/cli.js, dotfiles/.vim/plugged/ale/test/test-files/xo/monorepo/packages/a/index.js, dotfiles/.vim/plugged/ale/test/test-files/xo/monorepo/packages/a/index.ts, dotfiles/.vim/plugged/ale/test/test-files/xo/monorepo/packages/a/package.json, dotfiles/.vim/plugged/ale/test/test-files/xo/monorepo/package.json, dotfiles/.vim/plugged/ale/test/test-files/yaml/test.yaml, dotfiles/.vim/plugged/ale/test/test-files/zig/build.zig, dotfiles/.vim/plugged/ale/test/test-files/.gitignore, dotfiles/.vim/plugged/ale/test/util/test_cd_string_commands.vader, dotfiles/.vim/plugged/ale/test/v_files/testfile.v, dotfiles/.vim/plugged/ale/test/smoke_test.vader, dotfiles/.vim/plugged/ale/test/test_ale_has.vader, dotfiles/.vim/plugged/ale/test/test_ale_info.vader, dotfiles/.vim/plugged/ale/test/test_ale_info_to_clipboard.vader, dotfiles/.vim/plugged/ale/test/test_ale_lint_command.vader, dotfiles/.vim/plugged/ale/test/test_ale_lint_stop_command.vader, dotfiles/.vim/plugged/ale/test/test_ale_populate_command.vader, dotfiles/.vim/plugged/ale/test/test_ale_toggle.vader, dotfiles/.vim/plugged/ale/test/test_ale_var.vader, dotfiles/.vim/plugged/ale/test/test_alejobstarted_autocmd.vader, dotfiles/.vim/plugged/ale/test/test_alelint_autocmd.vader, dotfiles/.vim/plugged/ale/test/test_ant_build_classpath_command.vader, dotfiles/.vim/plugged/ale/test/test_ant_find_project_root.vader, dotfiles/.vim/plugged/ale/test/test_autocmd_commands.vader, dotfiles/.vim/plugged/ale/test/test_backwards_compatibility.vader, dotfiles/.vim/plugged/ale/test/test_balloon_messages.vader, dotfiles/.vim/plugged/ale/test/test_c_flag_parsing.vader, dotfiles/.vim/plugged/ale/test/test_checkingbuffer_autocmd.vader, dotfiles/.vim/plugged/ale/test/test_cleanup.vader, dotfiles/.vim/plugged/ale/test/test_code_action.vader, dotfiles/.vim/plugged/ale/test/test_code_action_corner_cases.vader, dotfiles/.vim/plugged/ale/test/test_code_action_python.vader, dotfiles/.vim/plugged/ale/test/test_codefix.vader, dotfiles/.vim/plugged/ale/test/test_computed_lint_file_values.vader, dotfiles/.vim/plugged/ale/test/test_csslint_config_detection.vader, dotfiles/.vim/plugged/ale/test/test_cursor_warnings.vader, dotfiles/.vim/plugged/ale/test/test_deferred_command_string.vader, dotfiles/.vim/plugged/ale/test/test_deferred_executable_string.vader, dotfiles/.vim/plugged/ale/test/test_deno_executable_detection.vader, dotfiles/.vim/plugged/ale/test/test_disabling_ale.vader, dotfiles/.vim/plugged/ale/test/test_dockerfile_hadolint_linter.vader, dotfiles/.vim/plugged/ale/test/test_env_function.vader, dotfiles/.vim/plugged/ale/test/test_errors_removed_after_filetype_changed.vader, dotfiles/.vim/plugged/ale/test/test_filename_mapping.vader, dotfiles/.vim/plugged/ale/test/test_filerename.vader, dotfiles/.vim/plugged/ale/test/test_filetype_linter_defaults.vader, dotfiles/.vim/plugged/ale/test/test_filetype_mapping.vader, dotfiles/.vim/plugged/ale/test/test_find_nearest_directory.vader, dotfiles/.vim/plugged/ale/test/test_find_references.vader, dotfiles/.vim/plugged/ale/test/test_floating_preview.vader, dotfiles/.vim/plugged/ale/test/test_format_command.vader, dotfiles/.vim/plugged/ale/test/test_format_temporary_file_creation.vader, dotfiles/.vim/plugged/ale/test/test_function_arg_count.vader, dotfiles/.vim/plugged/ale/test/test_fuzzy_json_decode.vader, dotfiles/.vim/plugged/ale/test/test_get_abspath.vader, dotfiles/.vim/plugged/ale/test/test_get_loclist.vader, dotfiles/.vim/plugged/ale/test/test_getmatches.vader, dotfiles/.vim/plugged/ale/test/test_go_to_definition.vader, dotfiles/.vim/plugged/ale/test/test_gradle_build_classpath_command.vader, dotfiles/.vim/plugged/ale/test/test_gradle_find_executable.vader, dotfiles/.vim/plugged/ale/test/test_gradle_find_project_root.vader, dotfiles/.vim/plugged/ale/test/test_helptags.vader, dotfiles/.vim/plugged/ale/test/test_highlight_placement.vader, dotfiles/.vim/plugged/ale/test/test_highlight_position_chunking.vader, dotfiles/.vim/plugged/ale/test/test_history_saving.vader, dotfiles/.vim/plugged/ale/test/test_hover.vader, dotfiles/.vim/plugged/ale/test/test_hover_parsing.vader, dotfiles/.vim/plugged/ale/test/test_ignoring_linters.vader, dotfiles/.vim/plugged/ale/test/test_jq_linter.vader, dotfiles/.vim/plugged/ale/test/test_jsonlint_executable_detection.vader, dotfiles/.vim/plugged/ale/test/test_line_join.vader, dotfiles/.vim/plugged/ale/test/test_lint_file_linters.vader, dotfiles/.vim/plugged/ale/test/test_lint_on_enter_when_file_changed.vader, dotfiles/.vim/plugged/ale/test/test_lint_on_filetype_changed.vader, dotfiles/.vim/plugged/ale/test/test_linter_defintion_processing.vader, dotfiles/.vim/plugged/ale/test/test_linter_retrieval.vader, dotfiles/.vim/plugged/ale/test/test_linter_type_mapping.vader, dotfiles/.vim/plugged/ale/test/test_linting_blacklist.vader, dotfiles/.vim/plugged/ale/test/test_linting_updates_loclist.vader, dotfiles/.vim/plugged/ale/test/test_list_formatting.vader, dotfiles/.vim/plugged/ale/test/test_list_opening.vader, dotfiles/.vim/plugged/ale/test/test_list_titles.vader, dotfiles/.vim/plugged/ale/test/test_load_all_linters.vader, dotfiles/.vim/plugged/ale/test/test_loclist_binary_search.vader, dotfiles/.vim/plugged/ale/test/test_loclist_corrections.vader, dotfiles/.vim/plugged/ale/test/test_loclist_jumping.vader, dotfiles/.vim/plugged/ale/test/test_loclist_sorting.vader, dotfiles/.vim/plugged/ale/test/test_maven_build_classpath_command.vader, dotfiles/.vim/plugged/ale/test/test_maven_find_executable.vader, dotfiles/.vim/plugged/ale/test/test_maven_find_project_root.vader, dotfiles/.vim/plugged/ale/test/test_nearest_file_search.vader, dotfiles/.vim/plugged/ale/test/test_nimlsp_project_root.vader, dotfiles/.vim/plugged/ale/test/test_no_linting_on_write_quit.vader, dotfiles/.vim/plugged/ale/test/test_organize_imports.vader, dotfiles/.vim/plugged/ale/test/test_other_sources.vader, dotfiles/.vim/plugged/ale/test/test_parse_command_args.vader, dotfiles/.vim/plugged/ale/test/test_path_dirname.vader, dotfiles/.vim/plugged/ale/test/test_path_equality.vader, dotfiles/.vim/plugged/ale/test/test_path_upwards.vader, dotfiles/.vim/plugged/ale/test/test_path_uri.vader, dotfiles/.vim/plugged/ale/test/test_pattern_options.vader, dotfiles/.vim/plugged/ale/test/test_prepare_command.vader, dotfiles/.vim/plugged/ale/test/test_puppet_path_detection.vader, dotfiles/.vim/plugged/ale/test/test_python_find_project_root.vader, dotfiles/.vim/plugged/ale/test/test_python_pipenv.vader, dotfiles/.vim/plugged/ale/test/test_python_poetry.vader, dotfiles/.vim/plugged/ale/test/test_python_traceback.vader, dotfiles/.vim/plugged/ale/test/test_python_virtualenv.vader, dotfiles/.vim/plugged/ale/test/test_quickfix_deduplication.vader, dotfiles/.vim/plugged/ale/test/test_quitting_variable.vader, dotfiles/.vim/plugged/ale/test/test_redundant_tsserver_rendering_avoided.vader, dotfiles/.vim/plugged/ale/test/test_regex_escaping.vader, dotfiles/.vim/plugged/ale/test/test_rename.vader, dotfiles/.vim/plugged/ale/test/test_resolve_local_path.vader, dotfiles/.vim/plugged/ale/test/test_results_not_cleared_when_opening_loclist.vader, dotfiles/.vim/plugged/ale/test/test_sandbox_execution.vader, dotfiles/.vim/plugged/ale/test/test_semver_utils.vader, dotfiles/.vim/plugged/ale/test/test_set_list_timers.vader, dotfiles/.vim/plugged/ale/test/test_setting_loclist_from_another_buffer.vader, dotfiles/.vim/plugged/ale/test/test_setting_problems_found_in_previous_buffers.vader, dotfiles/.vim/plugged/ale/test/test_shell_detection.vader, dotfiles/.vim/plugged/ale/test/test_should_do_nothing_conditions.vader, dotfiles/.vim/plugged/ale/test/test_sml_command.vader, dotfiles/.vim/plugged/ale/test/test_socket_connections.vader, dotfiles/.vim/plugged/ale/test/test_statusline.vader, dotfiles/.vim/plugged/ale/test/test_swift_find_project_root.vader, dotfiles/.vim/plugged/ale/test/test_symbol_search.vader, dotfiles/.vim/plugged/ale/test/test_temporary_file_management.vader, dotfiles/.vim/plugged/ale/test/test_tmpdir_wrapper.vader, dotfiles/.vim/plugged/ale/test/test_vim8_processid_parsing.vader, dotfiles/.vim/plugged/ale/test/test_windows_escaping.vader, dotfiles/.vim/plugged/ale/test/test_wrap_comand.vader, dotfiles/.vim/plugged/ale/test/test_writefile_function.vader, dotfiles/.vim/plugged/ale/test/vimrc, dotfiles/.vim/plugged/ale/.appveyor.yml, dotfiles/.vim/plugged/ale/.editorconfig, dotfiles/.vim/plugged/ale/.gitattributes, dotfiles/.vim/plugged/ale/.gitignore, dotfiles/.vim/plugged/ale/.gitrepo, dotfiles/.vim/plugged/ale/.vintrc.yaml, dotfiles/.vim/plugged/ale/Dockerfile, dotfiles/.vim/plugged/ale/LICENSE, dotfiles/.vim/plugged/ale/README.md, dotfiles/.vim/plugged/ale/run-tests, dotfiles/.vim/plugged/ale/run-tests.bat, dotfiles/.vim/plugged/ale/supported-tools.md, dotfiles/.vim/plugged/ansible-vim/UltiSnips/.gitignore, dotfiles/.vim/plugged/ansible-vim/UltiSnips/README.md, dotfiles/.vim/plugged/ansible-vim/UltiSnips/generate.py, dotfiles/.vim/plugged/ansible-vim/UltiSnips/generate.sh, dotfiles/.vim/plugged/ansible-vim/ftdetect/ansible.vim, dotfiles/.vim/plugged/ansible-vim/ftplugin/ansible.vim, dotfiles/.vim/plugged/ansible-vim/ftplugin/ansible_hosts.vim, dotfiles/.vim/plugged/ansible-vim/indent/ansible.vim, dotfiles/.vim/plugged/ansible-vim/syntax/ansible.vim, dotfiles/.vim/plugged/ansible-vim/syntax/ansible_hosts.vim, dotfiles/.vim/plugged/ansible-vim/syntax/jinja2.vim, dotfiles/.vim/plugged/ansible-vim/syntax/jinja2.vim_LICENSE, dotfiles/.vim/plugged/ansible-vim/.gitrepo, dotfiles/.vim/plugged/ansible-vim/LICENSE, dotfiles/.vim/plugged/ansible-vim/README.md, dotfiles/.vim/plugged/coc.nvim/autoload/coc/api.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/client.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/color.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/compat.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/cursor.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/dialog.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/dict.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/float.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/helper.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/highlight.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/list.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/math.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/notify.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/prompt.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/pum.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/rpc.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/snippet.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/string.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/task.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/terminal.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/ui.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/util.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/vtext.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc/window.vim, dotfiles/.vim/plugged/coc.nvim/autoload/health/coc.vim, dotfiles/.vim/plugged/coc.nvim/autoload/coc.vim, dotfiles/.vim/plugged/coc.nvim/bin/fuzzy.wasm, dotfiles/.vim/plugged/coc.nvim/bin/prompt.js, dotfiles/.vim/plugged/coc.nvim/bin/strwidth.wasm, dotfiles/.vim/plugged/coc.nvim/bin/terminateProcess.sh, dotfiles/.vim/plugged/coc.nvim/build/index.js, dotfiles/.vim/plugged/coc.nvim/data/schema.json, dotfiles/.vim/plugged/coc.nvim/doc/coc-config.txt, dotfiles/.vim/plugged/coc.nvim/doc/coc.txt, dotfiles/.vim/plugged/coc.nvim/lua/coc/highlight.lua, dotfiles/.vim/plugged/coc.nvim/plugin/coc.vim, dotfiles/.vim/plugged/coc.nvim/.gitignore, dotfiles/.vim/plugged/coc.nvim/.gitrepo, dotfiles/.vim/plugged/coc.nvim/LICENSE.md, dotfiles/.vim/plugged/coc.nvim/Readme.md, dotfiles/.vim/plugged/coc.nvim/history.md, dotfiles/.vim/plugged/coc.nvim/package.json, dotfiles/.vim/plugged/dockerfile.vim/ftdetect/Dockerfile.vim, dotfiles/.vim/plugged/dockerfile.vim/ftdetect/docker-compose.vim, dotfiles/.vim/plugged/dockerfile.vim/ftplugin/Dockerfile.vim, dotfiles/.vim/plugged/dockerfile.vim/ftplugin/docker-compose.vim, dotfiles/.vim/plugged/dockerfile.vim/indent/Dockerfile.vim, dotfiles/.vim/plugged/dockerfile.vim/snippets/Dockerfile.snippets, dotfiles/.vim/plugged/dockerfile.vim/snippets/docker-compose.snippets, dotfiles/.vim/plugged/dockerfile.vim/syntax/Dockerfile.vim, dotfiles/.vim/plugged/dockerfile.vim/syntax/docker-compose.vim, dotfiles/.vim/plugged/dockerfile.vim/.gitignore, dotfiles/.vim/plugged/dockerfile.vim/.gitrepo, dotfiles/.vim/plugged/dockerfile.vim/LICENSE, dotfiles/.vim/plugged/dockerfile.vim/Makefile, dotfiles/.vim/plugged/dockerfile.vim/README.md, dotfiles/.vim/plugged/dockerfile.vim/vim-dockerfile-example.png, dotfiles/.vim/plugged/editorconfig-vim/autoload/editorconfig_core/fnmatch.vim, dotfiles/.vim/plugged/editorconfig-vim/autoload/editorconfig_core/handler.vim, dotfiles/.vim/plugged/editorconfig-vim/autoload/editorconfig_core/ini.vim, dotfiles/.vim/plugged/editorconfig-vim/autoload/editorconfig_core/util.vim, dotfiles/.vim/plugged/editorconfig-vim/autoload/editorconfig.vim, dotfiles/.vim/plugged/editorconfig-vim/autoload/editorconfig_core.vim, dotfiles/.vim/plugged/editorconfig-vim/doc/editorconfig.txt, dotfiles/.vim/plugged/editorconfig-vim/plugin/editorconfig.vim, dotfiles/.vim/plugged/editorconfig-vim/tests/core/CMakeLists.txt, dotfiles/.vim/plugged/editorconfig-vim/tests/core/CTestCustom.cmake, dotfiles/.vim/plugged/editorconfig-vim/tests/core/ecvbslib.vbs, dotfiles/.vim/plugged/editorconfig-vim/tests/core/ecvimlib.ps1, dotfiles/.vim/plugged/editorconfig-vim/tests/core/editorconfig, dotfiles/.vim/plugged/editorconfig-vim/tests/core/editorconfig.bat, dotfiles/.vim/plugged/editorconfig-vim/tests/core/editorconfig1.vbs, dotfiles/.vim/plugged/editorconfig-vim/tests/core/editorconfig2.ps1, dotfiles/.vim/plugged/editorconfig-vim/tests/plugin/spec/.editorconfig, dotfiles/.vim/plugged/editorconfig-vim/tests/plugin/spec/editorconfig_spec.rb, dotfiles/.vim/plugged/editorconfig-vim/tests/plugin/.gitignore, dotfiles/.vim/plugged/editorconfig-vim/tests/plugin/Gemfile, dotfiles/.vim/plugged/editorconfig-vim/tests/plugin/Gemfile.lock, dotfiles/.vim/plugged/editorconfig-vim/tests/plugin/Rakefile, dotfiles/.vim/plugged/editorconfig-vim/tests/fetch-vim.bat, dotfiles/.vim/plugged/editorconfig-vim/tests/fetch-vim.sh, dotfiles/.vim/plugged/editorconfig-vim/tests/travis-test.sh, dotfiles/.vim/plugged/editorconfig-vim/.appveyor.yml, dotfiles/.vim/plugged/editorconfig-vim/.editorconfig, dotfiles/.vim/plugged/editorconfig-vim/.gitignore, dotfiles/.vim/plugged/editorconfig-vim/.gitmodules, dotfiles/.vim/plugged/editorconfig-vim/.gitrepo, dotfiles/.vim/plugged/editorconfig-vim/.travis.yml, dotfiles/.vim/plugged/editorconfig-vim/CONTRIBUTORS, dotfiles/.vim/plugged/editorconfig-vim/LICENSE, dotfiles/.vim/plugged/editorconfig-vim/LICENSE.PSF, dotfiles/.vim/plugged/editorconfig-vim/README.md, dotfiles/.vim/plugged/editorconfig-vim/mkzip.sh, dotfiles/.vim/plugged/fzf/.github/workflows/codeql-analysis.yml, dotfiles/.vim/plugged/fzf/.github/workflows/linux.yml, dotfiles/.vim/plugged/fzf/.github/workflows/macos.yml, dotfiles/.vim/plugged/fzf/.github/FUNDING.yml, dotfiles/.vim/plugged/fzf/.github/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/fzf/.github/dependabot.yml, dotfiles/.vim/plugged/fzf/bin/fzf-tmux, dotfiles/.vim/plugged/fzf/doc/fzf.txt, dotfiles/.vim/plugged/fzf/man/man1/fzf-tmux.1, dotfiles/.vim/plugged/fzf/man/man1/fzf.1, dotfiles/.vim/plugged/fzf/plugin/fzf.vim, dotfiles/.vim/plugged/fzf/shell/completion.bash, dotfiles/.vim/plugged/fzf/shell/completion.zsh, dotfiles/.vim/plugged/fzf/shell/key-bindings.bash, dotfiles/.vim/plugged/fzf/shell/key-bindings.fish, dotfiles/.vim/plugged/fzf/shell/key-bindings.zsh, dotfiles/.vim/plugged/fzf/src/algo/algo.go, dotfiles/.vim/plugged/fzf/src/algo/algo_test.go, dotfiles/.vim/plugged/fzf/src/algo/normalize.go, dotfiles/.vim/plugged/fzf/src/protector/protector.go, dotfiles/.vim/plugged/fzf/src/protector/protector_openbsd.go, dotfiles/.vim/plugged/fzf/src/tui/dummy.go, dotfiles/.vim/plugged/fzf/src/tui/light.go, dotfiles/.vim/plugged/fzf/src/tui/light_unix.go, dotfiles/.vim/plugged/fzf/src/tui/light_windows.go, dotfiles/.vim/plugged/fzf/src/tui/tcell.go, dotfiles/.vim/plugged/fzf/src/tui/tcell_test.go, dotfiles/.vim/plugged/fzf/src/tui/ttyname_unix.go, dotfiles/.vim/plugged/fzf/src/tui/ttyname_windows.go, dotfiles/.vim/plugged/fzf/src/tui/tui.go, dotfiles/.vim/plugged/fzf/src/tui/tui_test.go, dotfiles/.vim/plugged/fzf/src/util/atomicbool.go, dotfiles/.vim/plugged/fzf/src/util/atomicbool_test.go, dotfiles/.vim/plugged/fzf/src/util/chars.go, dotfiles/.vim/plugged/fzf/src/util/chars_test.go, dotfiles/.vim/plugged/fzf/src/util/eventbox.go, dotfiles/.vim/plugged/fzf/src/util/eventbox_test.go, dotfiles/.vim/plugged/fzf/src/util/slab.go, dotfiles/.vim/plugged/fzf/src/util/util.go, dotfiles/.vim/plugged/fzf/src/util/util_test.go, dotfiles/.vim/plugged/fzf/src/util/util_unix.go, dotfiles/.vim/plugged/fzf/src/util/util_windows.go, dotfiles/.vim/plugged/fzf/src/LICENSE, dotfiles/.vim/plugged/fzf/src/ansi.go, dotfiles/.vim/plugged/fzf/src/ansi_test.go, dotfiles/.vim/plugged/fzf/src/cache.go, dotfiles/.vim/plugged/fzf/src/cache_test.go, dotfiles/.vim/plugged/fzf/src/chunklist.go, dotfiles/.vim/plugged/fzf/src/chunklist_test.go, dotfiles/.vim/plugged/fzf/src/constants.go, dotfiles/.vim/plugged/fzf/src/core.go, dotfiles/.vim/plugged/fzf/src/history.go, dotfiles/.vim/plugged/fzf/src/history_test.go, dotfiles/.vim/plugged/fzf/src/item.go, dotfiles/.vim/plugged/fzf/src/item_test.go, dotfiles/.vim/plugged/fzf/src/matcher.go, dotfiles/.vim/plugged/fzf/src/merger.go, dotfiles/.vim/plugged/fzf/src/merger_test.go, dotfiles/.vim/plugged/fzf/src/options.go, dotfiles/.vim/plugged/fzf/src/options_test.go, dotfiles/.vim/plugged/fzf/src/pattern.go, dotfiles/.vim/plugged/fzf/src/pattern_test.go, dotfiles/.vim/plugged/fzf/src/reader.go, dotfiles/.vim/plugged/fzf/src/reader_test.go, dotfiles/.vim/plugged/fzf/src/result.go, dotfiles/.vim/plugged/fzf/src/result_others.go, dotfiles/.vim/plugged/fzf/src/result_test.go, dotfiles/.vim/plugged/fzf/src/result_x86.go, dotfiles/.vim/plugged/fzf/src/terminal.go, dotfiles/.vim/plugged/fzf/src/terminal_test.go, dotfiles/.vim/plugged/fzf/src/terminal_unix.go, dotfiles/.vim/plugged/fzf/src/terminal_windows.go, dotfiles/.vim/plugged/fzf/src/tokenizer.go, dotfiles/.vim/plugged/fzf/src/tokenizer_test.go, dotfiles/.vim/plugged/fzf/test/fzf.vader, dotfiles/.vim/plugged/fzf/test/test_go.rb, dotfiles/.vim/plugged/fzf/.gitignore, dotfiles/.vim/plugged/fzf/.gitrepo, dotfiles/.vim/plugged/fzf/.goreleaser.yml, dotfiles/.vim/plugged/fzf/.rubocop.yml, dotfiles/.vim/plugged/fzf/.tool-versions, dotfiles/.vim/plugged/fzf/ADVANCED.md, dotfiles/.vim/plugged/fzf/BUILD.md, dotfiles/.vim/plugged/fzf/CHANGELOG.md, dotfiles/.vim/plugged/fzf/Dockerfile, dotfiles/.vim/plugged/fzf/LICENSE, dotfiles/.vim/plugged/fzf/Makefile, dotfiles/.vim/plugged/fzf/README-VIM.md, dotfiles/.vim/plugged/fzf/README.md, dotfiles/.vim/plugged/fzf/go.mod, dotfiles/.vim/plugged/fzf/go.sum, dotfiles/.vim/plugged/fzf/install, dotfiles/.vim/plugged/fzf/install.ps1, dotfiles/.vim/plugged/fzf/main.go, dotfiles/.vim/plugged/fzf/uninstall, dotfiles/.vim/plugged/fzf.vim/.github/FUNDING.yml, dotfiles/.vim/plugged/fzf.vim/.github/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/fzf.vim/autoload/fzf/vim/complete.vim, dotfiles/.vim/plugged/fzf.vim/autoload/fzf/vim.vim, dotfiles/.vim/plugged/fzf.vim/bin/preview.rb, dotfiles/.vim/plugged/fzf.vim/bin/preview.sh, dotfiles/.vim/plugged/fzf.vim/bin/tagpreview.sh, dotfiles/.vim/plugged/fzf.vim/bin/tags.pl, dotfiles/.vim/plugged/fzf.vim/doc/fzf-vim.txt, dotfiles/.vim/plugged/fzf.vim/plugin/fzf.vim, dotfiles/.vim/plugged/fzf.vim/.gitattributes, dotfiles/.vim/plugged/fzf.vim/.gitignore, dotfiles/.vim/plugged/fzf.vim/.gitrepo, dotfiles/.vim/plugged/fzf.vim/LICENSE, dotfiles/.vim/plugged/fzf.vim/README.md, dotfiles/.vim/plugged/lightline.vim/.github/workflows/ci.yaml, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/16color.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/OldHope.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/PaperColor.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/PaperColor_dark.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/PaperColor_light.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/Tomorrow.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Blue.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Bright.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/Tomorrow_Night_Eighties.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/apprentice.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/ayu_dark.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/ayu_light.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/ayu_mirage.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/darcula.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/default.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/deus.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/jellybeans.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/landscape.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/materia.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/material.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/molokai.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/nord.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/one.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/powerline.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/powerlineish.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/rosepine.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/selenized_black.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/selenized_dark.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/selenized_light.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/selenized_white.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/seoul256.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/simpleblack.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/solarized.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/srcery_drk.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme/wombat.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colorscheme.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/colortable.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline/tab.vim, dotfiles/.vim/plugged/lightline.vim/autoload/lightline.vim, dotfiles/.vim/plugged/lightline.vim/doc/lightline.txt, dotfiles/.vim/plugged/lightline.vim/plugin/lightline.vim, dotfiles/.vim/plugged/lightline.vim/test/.themisrc, dotfiles/.vim/plugged/lightline.vim/test/autocmd.vim, dotfiles/.vim/plugged/lightline.vim/test/concatenate.vim, dotfiles/.vim/plugged/lightline.vim/test/error.vim, dotfiles/.vim/plugged/lightline.vim/test/expand.vim, dotfiles/.vim/plugged/lightline.vim/test/highlight.vim, dotfiles/.vim/plugged/lightline.vim/test/link.vim, dotfiles/.vim/plugged/lightline.vim/test/mode.vim, dotfiles/.vim/plugged/lightline.vim/test/onetab.vim, dotfiles/.vim/plugged/lightline.vim/test/popup.vim, dotfiles/.vim/plugged/lightline.vim/test/quickfix.vim, dotfiles/.vim/plugged/lightline.vim/test/subseparator.vim, dotfiles/.vim/plugged/lightline.vim/test/tabline.vim, dotfiles/.vim/plugged/lightline.vim/test/tabs.vim, dotfiles/.vim/plugged/lightline.vim/test/toggle.vim, dotfiles/.vim/plugged/lightline.vim/test/uniq.vim, dotfiles/.vim/plugged/lightline.vim/.gitignore, dotfiles/.vim/plugged/lightline.vim/.gitrepo, dotfiles/.vim/plugged/lightline.vim/LICENSE, dotfiles/.vim/plugged/lightline.vim/README.md, dotfiles/.vim/plugged/lightline.vim/colorscheme.md, dotfiles/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/bug.md, dotfiles/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/feature_request.md, dotfiles/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/question.md, dotfiles/.vim/plugged/nerdtree/.github/workflows/vint.yml, dotfiles/.vim/plugged/nerdtree/.github/PULL_REQUEST_TEMPLATE.md, dotfiles/.vim/plugged/nerdtree/autoload/nerdtree/ui_glue.vim, dotfiles/.vim/plugged/nerdtree/autoload/nerdtree.vim, dotfiles/.vim/plugged/nerdtree/doc/NERDTree.txt, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/bookmark.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/creator.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/event.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/flag_set.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/key_map.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/menu_controller.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/menu_item.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/nerdtree.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/notifier.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/opener.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/path.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/tree_dir_node.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/tree_file_node.vim, dotfiles/.vim/plugged/nerdtree/lib/nerdtree/ui.vim, dotfiles/.vim/plugged/nerdtree/nerdtree_plugin/exec_menuitem.vim, dotfiles/.vim/plugged/nerdtree/nerdtree_plugin/fs_menu.vim, dotfiles/.vim/plugged/nerdtree/nerdtree_plugin/vcs.vim, dotfiles/.vim/plugged/nerdtree/plugin/NERD_tree.vim, dotfiles/.vim/plugged/nerdtree/syntax/nerdtree.vim, dotfiles/.vim/plugged/nerdtree/.gitignore, dotfiles/.vim/plugged/nerdtree/.gitrepo, dotfiles/.vim/plugged/nerdtree/.vintrc.yaml, dotfiles/.vim/plugged/nerdtree/CHANGELOG.md, dotfiles/.vim/plugged/nerdtree/LICENCE, dotfiles/.vim/plugged/nerdtree/README.markdown, dotfiles/.vim/plugged/nerdtree/_config.yml, dotfiles/.vim/plugged/nerdtree/screenshot.png, dotfiles/.vim/plugged/php.vim/attic/0-bootstrap.inc.php, dotfiles/.vim/plugged/php.vim/attic/10-collect.php, dotfiles/.vim/plugged/php.vim/attic/20-generate.php, dotfiles/.vim/plugged/php.vim/attic/30-update.php, dotfiles/.vim/plugged/php.vim/attic/Dockerfile, dotfiles/.vim/plugged/php.vim/attic/syntax.ini, dotfiles/.vim/plugged/php.vim/attic/update.sh, dotfiles/.vim/plugged/php.vim/syntax/php.vim, dotfiles/.vim/plugged/php.vim/.gitrepo, dotfiles/.vim/plugged/php.vim/README.md, dotfiles/.vim/plugged/python-syntax/folding-ideas/python.vim.1.13, dotfiles/.vim/plugged/python-syntax/folding-ideas/python.vim.1.14, dotfiles/.vim/plugged/python-syntax/syntax/python.vim, dotfiles/.vim/plugged/python-syntax/.gitrepo, dotfiles/.vim/plugged/python-syntax/CHANGES.txt, dotfiles/.vim/plugged/python-syntax/LICENSE, dotfiles/.vim/plugged/python-syntax/README.rst, dotfiles/.vim/plugged/python-syntax/TODO.txt, dotfiles/.vim/plugged/python-syntax/syntax.txt, dotfiles/.vim/plugged/python-syntax/test.py, dotfiles/.vim/plugged/syntastic/_assets/screenshot_1.png, dotfiles/.vim/plugged/syntastic/autoload/syntastic/c.vim, dotfiles/.vim/plugged/syntastic/autoload/syntastic/log.vim, dotfiles/.vim/plugged/syntastic/autoload/syntastic/postprocess.vim, dotfiles/.vim/plugged/syntastic/autoload/syntastic/preprocess.vim, dotfiles/.vim/plugged/syntastic/autoload/syntastic/util.vim, dotfiles/.vim/plugged/syntastic/doc/syntastic-checkers.txt, dotfiles/.vim/plugged/syntastic/doc/syntastic.txt, dotfiles/.vim/plugged/syntastic/plugin/syntastic/autoloclist.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/balloons.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/checker.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/cursor.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/highlighting.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/loclist.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/modemap.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/notifiers.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/registry.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic/signs.vim, dotfiles/.vim/plugged/syntastic/plugin/syntastic.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/actionscript/mxmlc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ada/gcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ansible/ansible_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/apiblueprint/drafter.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/applescript/osacompile.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/asciidoc/asciidoc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/asciidoc/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/asl/iasl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/asm/gcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/bemhtml/bemhtmllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/bro/bro.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/avrgcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/checkpatch.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/clang_check.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/clang_tidy.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/cppcheck.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/cppclean.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/flawfinder.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/gcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/make.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/oclint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/pc_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/sparse.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/c/splint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cabal/cabal.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/chef/foodcritic.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cmake/cmakelint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/co/coco.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cobol/cobc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/coffee/coffee.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/coffee/coffee_jshint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/coffee/coffeelint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/coq/coqtop.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/avrgcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/clang_check.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/clang_tidy.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/cppcheck.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/cppclean.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/cpplint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/flawfinder.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/gcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/oclint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/pc_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cpp/verapp.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cs/mcs.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/css/csslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/css/mixedindentlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/css/phpcs.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/css/prettycss.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/css/recess.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/css/stylelint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cucumber/cucumber.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/cuda/nvcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/d/dmd.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/d/dscanner.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/dart/dartanalyzer.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/docbk/igor.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/docbk/xmllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/dockerfile/dockerfile_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/dockerfile/hadolint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/dustjs/swiffer.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/elixir/elixir.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/erlang/erlang_check_file.erl, dotfiles/.vim/plugged/syntastic/syntax_checkers/erlang/escript.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/erlang/syntaxerl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/eruby/ruby.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/fortran/gfortran.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/glsl/cgc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/go.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/gofmt.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/golangci_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/golint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/gometalinter.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/gotype.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/go/govet.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/haml/haml.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/haml/haml_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/handlebars/handlebars.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/haskell/hdevtools.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/haskell/hlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/haskell/scan.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/haxe/haxe.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/help/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/hss/hss.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/eslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/gjslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/htmlhint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/jshint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/stylelint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/textlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/tidy.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/validator.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/html/w3.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/jade/jade_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/java/checkstyle.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/java/javac.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/closurecompiler.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/eslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/flow.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/gjslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/jscs.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/jshint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/jsl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/jslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/jsxhint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/lynt.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/mixedindentlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/standard.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/javascript/tern_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/json/jsonlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/json/jsonval.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/less/less-lint.coffee, dotfiles/.vim/plugged/syntastic/syntax_checkers/less/less-lint.js, dotfiles/.vim/plugged/syntastic/syntax_checkers/less/lessc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/less/recess.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/lex/flex.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/limbo/limbo.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/lisp/clisp.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/llvm/llvm.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/lua/luac.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/lua/luacheck.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/markdown/mdl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/markdown/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/markdown/remark_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/markdown/textlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/matlab/mlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/mercury/mmc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/nasm/nasm.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/nix/nix.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/nroff/igor.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/nroff/mandoc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/nroff/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/objc/gcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/objc/oclint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/objcpp/gcc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/objcpp/oclint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ocaml/camlp4o.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/perl/perl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/perl/perlcritic.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/perl/podchecker.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/perl6/perl6.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/php/php.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/php/phpcs.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/php/phplint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/php/phpmd.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/php/phpstan.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/po/dennis.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/po/msgfmt.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/pod/podchecker.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/pod/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/pug/pug_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/puppet/puppet.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/puppet/puppetlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/bandit.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/codec.py, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/compile.py, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/flake8.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/frosted.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/mypy.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pep257.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pep8.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/prospector.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/py3kwarn.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pycodestyle.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pydocstyle.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pyflakes.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pylama.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/pylint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/python/python.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/qml/qmllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/r/lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/r/lintr.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/r/svtools.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/racket/code-ayatollah.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/racket/racket.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/raku/raku.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/rmd/lintr.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/rnc/rnv.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/rst/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/rst/rst2pseudoxml.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/rst/rstcheck.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/rst/sphinx.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/flog.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/jruby.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/macruby.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/mri.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/reek.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/rubocop.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/rubylint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/ruby/sorbet.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sass/sass.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sass/sass_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sass/sassc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scala/fsc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scala/scalac.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scala/scalastyle.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scss/mixedindentlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scss/sass.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scss/sass_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scss/sassc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/scss/scss_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sh/bashate.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sh/checkbashisms.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sh/sh.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sh/shellcheck.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sh/shfmt.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/slim/slim_lint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/slim/slimrb.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sml/smlnj.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/solidity/solc.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/solidity/solhint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/solidity/solium.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/spec/rpmlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sql/sqlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/sql/tsqllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/stylus/stylint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/svg/validator.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/svg/w3.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/tcl/nagelfar.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/tex/chktex.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/tex/lacheck.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/tex/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/texinfo/makeinfo.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/texinfo/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/text/atdtool.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/text/igor.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/text/language_check.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/text/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/text/textlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/trig/rapper.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/turtle/rapper.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/turtle/ttl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/twig/twigcs.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/twig/twiglint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/typescript/eslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/typescript/lynt.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/typescript/tslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/verilog/iverilog.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/verilog/verilator.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vhdl/ghdl.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vhdl/vcom.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vim/vimlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vim/vint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vue/eslint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vue/pug_lint_vue.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/vue/stylelint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xhtml/jshint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xhtml/proselint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xhtml/tidy.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xhtml/validator.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xhtml/w3.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xml/plutil.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xml/xmllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xquery/basex.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/xslt/xmllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/yacc/bison.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/yaml/jsyaml.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/yaml/yamllint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/yaml/yamlxs.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/yang/pyang.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/yara/yara.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/z80/z80syntaxchecker.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/zpt/zptlint.vim, dotfiles/.vim/plugged/syntastic/syntax_checkers/zsh/zsh.vim, dotfiles/.vim/plugged/syntastic/.gitignore, dotfiles/.vim/plugged/syntastic/.gitrepo, dotfiles/.vim/plugged/syntastic/CONTRIBUTING.md, dotfiles/.vim/plugged/syntastic/LICENCE, dotfiles/.vim/plugged/syntastic/README.markdown, dotfiles/.vim/plugged/vim-airline/.github/workflows/ci.yml, dotfiles/.vim/plugged/vim-airline/.github/workflows/reviewdog.yml, dotfiles/.vim/plugged/vim-airline/.github/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/default.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/jsformatter.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/short_path.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/tabnr.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/autoshow.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buffers.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabs.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabws.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/xtabline.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/wordcount/formatters/readingtime.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/ale.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/battery.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/bookmark.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/bufferline.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/capslock.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/commandt.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/csv.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlp.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlspace.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/cursormode.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/denite.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/dirvish.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/eclim.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/example.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/fern.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/fugitiveline.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/fzf.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/gen_tags.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/gina.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/grepper.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/gutentags.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/keymap.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/languageclient.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/localsearch.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/lsp.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/neomake.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/netrw.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/nrrwrgn.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/nvimlsp.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/obsession.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/omnisharp.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/po.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/poetv.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/promptline.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/rufo.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/scrollbar.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/searchcount.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/syntastic.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tagbar.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/taglist.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/term.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/tmuxline.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/undotree.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/unicode.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/unite.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/vim9lsp.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/vimagit.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/vimcmake.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/vimtex.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/virtualenv.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/vista.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/windowswap.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/xkblayout.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/ycm.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions/zoomwintab.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/formatter/short_path.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/themes/dark.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/async.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/builder.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/debug.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/extensions.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/highlighter.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/init.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/msdos.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/parts.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/section.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/themes.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline/util.vim, dotfiles/.vim/plugged/vim-airline/autoload/airline.vim, dotfiles/.vim/plugged/vim-airline/doc/airline.txt, dotfiles/.vim/plugged/vim-airline/plugin/airline.vim, dotfiles/.vim/plugged/vim-airline/test/.themisrc, dotfiles/.vim/plugged/vim-airline/test/airline.vimspec, dotfiles/.vim/plugged/vim-airline/test/builder.vimspec, dotfiles/.vim/plugged/vim-airline/test/commands.vimspec, dotfiles/.vim/plugged/vim-airline/test/extensions_default.vimspec, dotfiles/.vim/plugged/vim-airline/test/extensions_tabline.vimspec, dotfiles/.vim/plugged/vim-airline/test/highlighter.vimspec, dotfiles/.vim/plugged/vim-airline/test/init.vimspec, dotfiles/.vim/plugged/vim-airline/test/parts.vimspec, dotfiles/.vim/plugged/vim-airline/test/section.vimspec, dotfiles/.vim/plugged/vim-airline/test/themes.vimspec, dotfiles/.vim/plugged/vim-airline/test/util.vimspec, dotfiles/.vim/plugged/vim-airline/.gitignore, dotfiles/.vim/plugged/vim-airline/.gitrepo, dotfiles/.vim/plugged/vim-airline/CHANGELOG.md, dotfiles/.vim/plugged/vim-airline/CONTRIBUTING.md, dotfiles/.vim/plugged/vim-airline/LICENSE, dotfiles/.vim/plugged/vim-airline/README.md, dotfiles/.vim/plugged/vim-carbon-now-sh/doc/vim-carbon-now-sh.txt, dotfiles/.vim/plugged/vim-carbon-now-sh/plugin/vim-carbon-now-sh.vim, dotfiles/.vim/plugged/vim-carbon-now-sh/.gitrepo, dotfiles/.vim/plugged/vim-carbon-now-sh/LICENSE, dotfiles/.vim/plugged/vim-carbon-now-sh/README.md, dotfiles/.vim/plugged/vim-devicons/.github/workflows/ci.yml, dotfiles/.vim/plugged/vim-devicons/.github/workflows/vint.yml, dotfiles/.vim/plugged/vim-devicons/.github/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/vim-devicons/.github/PULL_REQUEST_TEMPLATE.md, dotfiles/.vim/plugged/vim-devicons/autoload/airline/extensions/tabline/formatters/webdevicons.vim, dotfiles/.vim/plugged/vim-devicons/autoload/devicons/plugins/ctrlp.vim, dotfiles/.vim/plugged/vim-devicons/autoload/devicons/plugins/denite.vim, dotfiles/.vim/plugged/vim-devicons/autoload/devicons/plugins/flagship.vim, dotfiles/.vim/plugged/vim-devicons/autoload/devicons/plugins/startify.vim, dotfiles/.vim/plugged/vim-devicons/autoload/devicons/plugins/unite.vim, dotfiles/.vim/plugged/vim-devicons/autoload/devicons/plugins/vimfiler.vim, dotfiles/.vim/plugged/vim-devicons/autoload/vimfiler/columns/devicons.vim, dotfiles/.vim/plugged/vim-devicons/doc/webdevicons.txt, dotfiles/.vim/plugged/vim-devicons/nerdtree_plugin/webdevicons.vim, dotfiles/.vim/plugged/vim-devicons/plugin/webdevicons.vim, dotfiles/.vim/plugged/vim-devicons/pythonx/vim_devicons/powerline/__init__.py, dotfiles/.vim/plugged/vim-devicons/pythonx/vim_devicons/powerline/segments.py, dotfiles/.vim/plugged/vim-devicons/pythonx/vim_devicons/__init__.py, dotfiles/.vim/plugged/vim-devicons/rplugin/python3/denite/filter/devicons_denite_converter.py, dotfiles/.vim/plugged/vim-devicons/test/.themisrc, dotfiles/.vim/plugged/vim-devicons/test/default_setting.vim, dotfiles/.vim/plugged/vim-devicons/test/fileformat.vim, dotfiles/.vim/plugged/vim-devicons/test/filetype.vim, dotfiles/.vim/plugged/vim-devicons/.gitignore, dotfiles/.vim/plugged/vim-devicons/.gitrepo, dotfiles/.vim/plugged/vim-devicons/CHANGELOG.md, dotfiles/.vim/plugged/vim-devicons/CODE_OF_CONDUCT.md, dotfiles/.vim/plugged/vim-devicons/CONTRIBUTING.md, dotfiles/.vim/plugged/vim-devicons/DEVELOPER.md, dotfiles/.vim/plugged/vim-devicons/LICENSE, dotfiles/.vim/plugged/vim-devicons/README.md, dotfiles/.vim/plugged/vim-fugitive/.github/FUNDING.yml, dotfiles/.vim/plugged/vim-fugitive/autoload/fugitive.vim, dotfiles/.vim/plugged/vim-fugitive/doc/fugitive.txt, dotfiles/.vim/plugged/vim-fugitive/ftdetect/fugitive.vim, dotfiles/.vim/plugged/vim-fugitive/ftplugin/fugitiveblame.vim, dotfiles/.vim/plugged/vim-fugitive/plugin/fugitive.vim, dotfiles/.vim/plugged/vim-fugitive/syntax/fugitive.vim, dotfiles/.vim/plugged/vim-fugitive/syntax/fugitiveblame.vim, dotfiles/.vim/plugged/vim-fugitive/.gitattributes, dotfiles/.vim/plugged/vim-fugitive/.gitignore, dotfiles/.vim/plugged/vim-fugitive/.gitrepo, dotfiles/.vim/plugged/vim-fugitive/CONTRIBUTING.markdown, dotfiles/.vim/plugged/vim-fugitive/README.markdown, dotfiles/.vim/plugged/vim-gitgutter/.github/issue_template.md, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/async.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/debug.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/diff_highlight.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/fold.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/highlight.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/hunk.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/sign.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter/utility.vim, dotfiles/.vim/plugged/vim-gitgutter/autoload/gitgutter.vim, dotfiles/.vim/plugged/vim-gitgutter/doc/gitgutter.txt, dotfiles/.vim/plugged/vim-gitgutter/plugin/gitgutter.vim, dotfiles/.vim/plugged/vim-gitgutter/test/cp932.txt, dotfiles/.vim/plugged/vim-gitgutter/test/fixture.txt, dotfiles/.vim/plugged/vim-gitgutter/test/fixture_dos.txt, dotfiles/.vim/plugged/vim-gitgutter/test/runner.vim, dotfiles/.vim/plugged/vim-gitgutter/test/test, dotfiles/.vim/plugged/vim-gitgutter/test/test_gitgutter.vim, dotfiles/.vim/plugged/vim-gitgutter/.gitignore, dotfiles/.vim/plugged/vim-gitgutter/.gitrepo, dotfiles/.vim/plugged/vim-gitgutter/LICENCE, dotfiles/.vim/plugged/vim-gitgutter/README.mkd, dotfiles/.vim/plugged/vim-gitgutter/screenshot.png, dotfiles/.vim/plugged/vim-go/.github/workflows/git.yml, dotfiles/.vim/plugged/vim-go/.github/workflows/test.yml, dotfiles/.vim/plugged/vim-go/.github/CONTRIBUTING.md, dotfiles/.vim/plugged/vim-go/.github/FUNDING.yml, dotfiles/.vim/plugged/vim-go/.github/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/vim-go/assets/vim-go.png, dotfiles/.vim/plugged/vim-go/assets/vim-go.svg, dotfiles/.vim/plugged/vim-go/autoload/ctrlp/decls.vim, dotfiles/.vim/plugged/vim-go/autoload/fzf/decls.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp/completionitemkind.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp/filechangetype.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp/lsp.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp/lsp_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp/message.vim, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/cmd/bad.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/complete/complete.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/config/buildtags/buildtags.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/config/buildtags/constrainedfoo.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/config/buildtags/foo.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/config/buildtags/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/debug/compilerror/main.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/debug/debugmain/debugmain.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/def/jump.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/fmt/src/imports/vendor/gh.com/gi/foo-logging/logger.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/fmt/src/imports/goimports.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/fmt/src/imports/goimports_golden.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/fmt/hello.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/fmt/hello_golden.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/job/dir has spaces/main.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/errcheck/compilererror/compilererror.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/errcheck/errcheck.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/errcheck/errcheck_test.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/errcheck/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/foo/foo.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/foo/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/golangci-lint/problems/importabs/ok.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/golangci-lint/problems/importabs/problems.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/golangci-lint/problems/multiple/problems.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/golangci-lint/problems/shadow/problems.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/baz.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/lint.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/lint/quux.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/vet/compilererror/compilererror.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/vet/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lint/src/vet/vet.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lsp/fmt/format.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lsp/fmt/format_golden.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lsp/fmt/newline.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lsp/imports/imports.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/lsp/imports/imports_golden.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/package/src/package/bar/.gitkeep, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/package/src/package/baz/.gitkeep, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/package/src/package/vendor/foo/.gitkeep, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/package/src/package/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/package/src/package/package.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/tags/add_all_golden.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/tags/add_all_golden_options.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/tags/add_all_input.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/tags/remove_all_golden.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/tags/remove_all_input.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/term/term.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/compilerror/compilerror.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/compilerror/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/example/example_test.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/example/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/play/mock/controller.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/play/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/play/play_test.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/showname/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/showname/showname_test.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/testcompilerror/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/testcompilerror/testcompilerror_test.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/timeout/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/timeout/timeout_test.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/veterror/go.mod, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/src/veterror/veterror.go, dotfiles/.vim/plugged/vim-go/autoload/go/test-fixtures/test/.gitignore, dotfiles/.vim/plugged/vim-go/autoload/go/alternate.vim, dotfiles/.vim/plugged/vim-go/autoload/go/asmfmt.vim, dotfiles/.vim/plugged/vim-go/autoload/go/auto.vim, dotfiles/.vim/plugged/vim-go/autoload/go/calls.vim, dotfiles/.vim/plugged/vim-go/autoload/go/calls_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/cmd.vim, dotfiles/.vim/plugged/vim-go/autoload/go/cmd_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/complete.vim, dotfiles/.vim/plugged/vim-go/autoload/go/complete_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/config.vim, dotfiles/.vim/plugged/vim-go/autoload/go/config_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/coverage.vim, dotfiles/.vim/plugged/vim-go/autoload/go/debug.vim, dotfiles/.vim/plugged/vim-go/autoload/go/debug_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/decls.vim, dotfiles/.vim/plugged/vim-go/autoload/go/def.vim, dotfiles/.vim/plugged/vim-go/autoload/go/def_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/doc.vim, dotfiles/.vim/plugged/vim-go/autoload/go/fillstruct.vim, dotfiles/.vim/plugged/vim-go/autoload/go/fillstruct_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/fmt.vim, dotfiles/.vim/plugged/vim-go/autoload/go/fmt_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/guru.vim, dotfiles/.vim/plugged/vim-go/autoload/go/guru_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/highlight_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/iferr.vim, dotfiles/.vim/plugged/vim-go/autoload/go/impl.vim, dotfiles/.vim/plugged/vim-go/autoload/go/impl_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/implements.vim, dotfiles/.vim/plugged/vim-go/autoload/go/import.vim, dotfiles/.vim/plugged/vim-go/autoload/go/import_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/indent_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/issue.vim, dotfiles/.vim/plugged/vim-go/autoload/go/job.vim, dotfiles/.vim/plugged/vim-go/autoload/go/job_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/keyify.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lint.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lint_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/list.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp.vim, dotfiles/.vim/plugged/vim-go/autoload/go/lsp_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/mod.vim, dotfiles/.vim/plugged/vim-go/autoload/go/package.vim, dotfiles/.vim/plugged/vim-go/autoload/go/package_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/path.vim, dotfiles/.vim/plugged/vim-go/autoload/go/play.vim, dotfiles/.vim/plugged/vim-go/autoload/go/promise.vim, dotfiles/.vim/plugged/vim-go/autoload/go/promise_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/referrers.vim, dotfiles/.vim/plugged/vim-go/autoload/go/rename.vim, dotfiles/.vim/plugged/vim-go/autoload/go/statusline.vim, dotfiles/.vim/plugged/vim-go/autoload/go/tags.vim, dotfiles/.vim/plugged/vim-go/autoload/go/tags_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/template.vim, dotfiles/.vim/plugged/vim-go/autoload/go/template_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/term.vim, dotfiles/.vim/plugged/vim-go/autoload/go/term_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/test_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/textobj.vim, dotfiles/.vim/plugged/vim-go/autoload/go/tool.vim, dotfiles/.vim/plugged/vim-go/autoload/go/tool_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/ui.vim, dotfiles/.vim/plugged/vim-go/autoload/go/uri.vim, dotfiles/.vim/plugged/vim-go/autoload/go/uri_test.vim, dotfiles/.vim/plugged/vim-go/autoload/go/util.vim, dotfiles/.vim/plugged/vim-go/autoload/unite/sources/decls.vim, dotfiles/.vim/plugged/vim-go/autoload/gotest.vim, dotfiles/.vim/plugged/vim-go/compiler/go.vim, dotfiles/.vim/plugged/vim-go/doc/vim-go.txt, dotfiles/.vim/plugged/vim-go/ftdetect/gofiletype.vim, dotfiles/.vim/plugged/vim-go/ftplugin/go/commands.vim, dotfiles/.vim/plugged/vim-go/ftplugin/go/mappings.vim, dotfiles/.vim/plugged/vim-go/ftplugin/go/snippets.vim, dotfiles/.vim/plugged/vim-go/ftplugin/go/tagbar.vim, dotfiles/.vim/plugged/vim-go/ftplugin/gomod/commands.vim, dotfiles/.vim/plugged/vim-go/ftplugin/gomod/mappings.vim, dotfiles/.vim/plugged/vim-go/ftplugin/asm.vim, dotfiles/.vim/plugged/vim-go/ftplugin/go.vim, dotfiles/.vim/plugged/vim-go/ftplugin/gohtmltmpl.vim, dotfiles/.vim/plugged/vim-go/ftplugin/gomod.vim, dotfiles/.vim/plugged/vim-go/gosnippets/UltiSnips/go.snippets, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_eq, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_err, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_errt, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_errw, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_f, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_ff, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_fori, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_pkg, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_sp, dotfiles/.vim/plugged/vim-go/gosnippets/minisnip/_go_tt, dotfiles/.vim/plugged/vim-go/gosnippets/snippets/go.snip, dotfiles/.vim/plugged/vim-go/indent/go.vim, dotfiles/.vim/plugged/vim-go/indent/gohtmltmpl.vim, dotfiles/.vim/plugged/vim-go/plugin/go.vim, dotfiles/.vim/plugged/vim-go/rplugin/python3/denite/source/decls.py, dotfiles/.vim/plugged/vim-go/scripts/bench-syntax, dotfiles/.vim/plugged/vim-go/scripts/docker-test, dotfiles/.vim/plugged/vim-go/scripts/install-tools, dotfiles/.vim/plugged/vim-go/scripts/install-vim, dotfiles/.vim/plugged/vim-go/scripts/lint, dotfiles/.vim/plugged/vim-go/scripts/run-vim, dotfiles/.vim/plugged/vim-go/scripts/runbench.vim, dotfiles/.vim/plugged/vim-go/scripts/runtest.vim, dotfiles/.vim/plugged/vim-go/scripts/test, dotfiles/.vim/plugged/vim-go/syntax/go.vim, dotfiles/.vim/plugged/vim-go/syntax/godebugoutput.vim, dotfiles/.vim/plugged/vim-go/syntax/godebugstacktrace.vim, dotfiles/.vim/plugged/vim-go/syntax/godebugvariables.vim, dotfiles/.vim/plugged/vim-go/syntax/godefstack.vim, dotfiles/.vim/plugged/vim-go/syntax/gohtmltmpl.vim, dotfiles/.vim/plugged/vim-go/syntax/gomod.vim, dotfiles/.vim/plugged/vim-go/syntax/gosum.vim, dotfiles/.vim/plugged/vim-go/syntax/gotexttmpl.vim, dotfiles/.vim/plugged/vim-go/syntax/gowork.vim, dotfiles/.vim/plugged/vim-go/syntax/vimgo.vim, dotfiles/.vim/plugged/vim-go/templates/hello_world.go, dotfiles/.vim/plugged/vim-go/templates/hello_world_test.go, dotfiles/.vim/plugged/vim-go/test/parse.go, dotfiles/.vim/plugged/vim-go/.codecov.yml, dotfiles/.vim/plugged/vim-go/.coveragerc, dotfiles/.vim/plugged/vim-go/.dockerignore, dotfiles/.vim/plugged/vim-go/.editorconfig, dotfiles/.vim/plugged/vim-go/.gitignore, dotfiles/.vim/plugged/vim-go/.gitrepo, dotfiles/.vim/plugged/vim-go/.vintrc.yaml, dotfiles/.vim/plugged/vim-go/CHANGELOG.md, dotfiles/.vim/plugged/vim-go/Dockerfile, dotfiles/.vim/plugged/vim-go/LICENSE, dotfiles/.vim/plugged/vim-go/Makefile, dotfiles/.vim/plugged/vim-go/README.md, dotfiles/.vim/plugged/vim-go/addon-info.json, dotfiles/.vim/plugged/vim-javascript/after/ftplugin/javascript.vim, dotfiles/.vim/plugged/vim-javascript/compiler/eslint.vim, dotfiles/.vim/plugged/vim-javascript/extras/ctags, dotfiles/.vim/plugged/vim-javascript/extras/flow.vim, dotfiles/.vim/plugged/vim-javascript/extras/jsdoc.vim, dotfiles/.vim/plugged/vim-javascript/extras/ngdoc.vim, dotfiles/.vim/plugged/vim-javascript/ftdetect/flow.vim, dotfiles/.vim/plugged/vim-javascript/ftdetect/javascript.vim, dotfiles/.vim/plugged/vim-javascript/indent/javascript.vim, dotfiles/.vim/plugged/vim-javascript/syntax/flow.vim, dotfiles/.vim/plugged/vim-javascript/syntax/javascript.vim, dotfiles/.vim/plugged/vim-javascript/.gitrepo, dotfiles/.vim/plugged/vim-javascript/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/vim-javascript/README.md, dotfiles/.vim/plugged/vim-jsx/after/ftplugin/jsx.vim, dotfiles/.vim/plugged/vim-jsx/after/indent/jsx.vim, dotfiles/.vim/plugged/vim-jsx/after/syntax/jsx.vim, dotfiles/.vim/plugged/vim-jsx/ftdetect/javascript.vim, dotfiles/.vim/plugged/vim-jsx/.gitrepo, dotfiles/.vim/plugged/vim-jsx/README.md, dotfiles/.vim/plugged/vim-markdown/.github/workflows/reviewdog.yml, dotfiles/.vim/plugged/vim-markdown/.github/workflows/vader.yml, dotfiles/.vim/plugged/vim-markdown/.github/workflows/vint.yml, dotfiles/.vim/plugged/vim-markdown/after/ftplugin/markdown.vim, dotfiles/.vim/plugged/vim-markdown/doc/vim-markdown.txt, dotfiles/.vim/plugged/vim-markdown/ftdetect/markdown.vim, dotfiles/.vim/plugged/vim-markdown/ftplugin/markdown.vim, dotfiles/.vim/plugged/vim-markdown/indent/markdown.vim, dotfiles/.vim/plugged/vim-markdown/registry/markdown.yaml, dotfiles/.vim/plugged/vim-markdown/syntax/markdown.vim, dotfiles/.vim/plugged/vim-markdown/test/README.md, dotfiles/.vim/plugged/vim-markdown/test/folding-toc.vader, dotfiles/.vim/plugged/vim-markdown/test/folding.vader, dotfiles/.vim/plugged/vim-markdown/test/ge_test.md, dotfiles/.vim/plugged/vim-markdown/test/indent-new-list-item.vader, dotfiles/.vim/plugged/vim-markdown/test/indent.md, dotfiles/.vim/plugged/vim-markdown/test/indent.vader, dotfiles/.vim/plugged/vim-markdown/test/insert-toc.vader, dotfiles/.vim/plugged/vim-markdown/test/map.vader, dotfiles/.vim/plugged/vim-markdown/test/python-folding.vader, dotfiles/.vim/plugged/vim-markdown/test/run-tests.sh, dotfiles/.vim/plugged/vim-markdown/test/syntax-singleline.vader, dotfiles/.vim/plugged/vim-markdown/test/syntax.md, dotfiles/.vim/plugged/vim-markdown/test/syntax.vader, dotfiles/.vim/plugged/vim-markdown/test/table-format.vader, dotfiles/.vim/plugged/vim-markdown/test/toc-autofit.vader, dotfiles/.vim/plugged/vim-markdown/test/toc.vader, dotfiles/.vim/plugged/vim-markdown/test/vimrc, dotfiles/.vim/plugged/vim-markdown/.gitignore, dotfiles/.vim/plugged/vim-markdown/.gitrepo, dotfiles/.vim/plugged/vim-markdown/.vintrc.yaml, dotfiles/.vim/plugged/vim-markdown/CONTRIBUTING.md, dotfiles/.vim/plugged/vim-markdown/Makefile, dotfiles/.vim/plugged/vim-markdown/README.md, dotfiles/.vim/plugged/vim-multiple-cursors/assets/example1.gif, dotfiles/.vim/plugged/vim-multiple-cursors/assets/example2.gif, dotfiles/.vim/plugged/vim-multiple-cursors/assets/example3.gif, dotfiles/.vim/plugged/vim-multiple-cursors/assets/example4.gif, dotfiles/.vim/plugged/vim-multiple-cursors/autoload/multiple_cursors.vim, dotfiles/.vim/plugged/vim-multiple-cursors/doc/multiple_cursors.txt, dotfiles/.vim/plugged/vim-multiple-cursors/plugin/multiple_cursors.vim, dotfiles/.vim/plugged/vim-multiple-cursors/spec/benchmark_spec.rb, dotfiles/.vim/plugged/vim-multiple-cursors/spec/multiple_cursors_spec.rb, dotfiles/.vim/plugged/vim-multiple-cursors/spec/spec_helper.rb, dotfiles/.vim/plugged/vim-multiple-cursors/.gitignore, dotfiles/.vim/plugged/vim-multiple-cursors/.gitrepo, dotfiles/.vim/plugged/vim-multiple-cursors/.rspec, dotfiles/.vim/plugged/vim-multiple-cursors/.travis.yml, dotfiles/.vim/plugged/vim-multiple-cursors/CHANGELOG.md, dotfiles/.vim/plugged/vim-multiple-cursors/CONTRIBUTING.md, dotfiles/.vim/plugged/vim-multiple-cursors/Gemfile, dotfiles/.vim/plugged/vim-multiple-cursors/Gemfile.lock, dotfiles/.vim/plugged/vim-multiple-cursors/MIT-LICENSE.txt, dotfiles/.vim/plugged/vim-multiple-cursors/README.md, dotfiles/.vim/plugged/vim-multiple-cursors/Rakefile, dotfiles/.vim/plugged/vim-prettier/.github/ISSUE_TEMPLATE.md, dotfiles/.vim/plugged/vim-prettier/.github/PULL_REQUEST_TEMPLATE.md, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/bridge/parser.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/job/async/neovim.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/job/async/vim.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/job/runner.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/logging/error.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/presets/fb.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/resolver/config.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/resolver/executable.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/resolver/preset.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/utils/buffer.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/utils/quickfix.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier/utils/shim.vim, dotfiles/.vim/plugged/vim-prettier/autoload/prettier.vim, dotfiles/.vim/plugged/vim-prettier/doc/prettier.txt, dotfiles/.vim/plugged/vim-prettier/ftdetect/css.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/graphql.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/html.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/javascript.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/json.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/less.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/lua.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/markdown.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/php.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/ruby.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/scss.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/svelte.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/typescript.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/vue.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/xml.vim, dotfiles/.vim/plugged/vim-prettier/ftdetect/yaml.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/css.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/graphql.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/html.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/javascript.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/json.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/less.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/lua.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/markdown.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/php.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/ruby.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/scss.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/svelte.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/typescript.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/vue.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/xml.vim, dotfiles/.vim/plugged/vim-prettier/ftplugin/yaml.vim, dotfiles/.vim/plugged/vim-prettier/media/vim-prettier.gif, dotfiles/.vim/plugged/vim-prettier/plugin/prettier.vim, dotfiles/.vim/plugged/vim-prettier/tests/__snapshots__/formatting.test.js.snap, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.css, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.graphql, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.html, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.js, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.json, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.less, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.lua, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.md, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.php, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.rb, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.scss, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.ts, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.vue, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.xml, dotfiles/.vim/plugged/vim-prettier/tests/fixtures/foo.yaml, dotfiles/.vim/plugged/vim-prettier/tests/formatting.test.js, dotfiles/.vim/plugged/vim-prettier/tests/vimrc, dotfiles/.vim/plugged/vim-prettier/.gitignore, dotfiles/.vim/plugged/vim-prettier/.gitrepo, dotfiles/.vim/plugged/vim-prettier/CHANGELOG.md, dotfiles/.vim/plugged/vim-prettier/Dockerfile, dotfiles/.vim/plugged/vim-prettier/LICENSE, dotfiles/.vim/plugged/vim-prettier/Makefile, dotfiles/.vim/plugged/vim-prettier/README.md, dotfiles/.vim/plugged/vim-prettier/package.json, dotfiles/.vim/plugged/vim-prettier/yarn.lock, dotfiles/.vim/plugged/vim-sensible/.github/FUNDING.yml, dotfiles/.vim/plugged/vim-sensible/plugin/sensible.vim, dotfiles/.vim/plugged/vim-sensible/.gitrepo, dotfiles/.vim/plugged/vim-sensible/README.markdown, dotfiles/.vim/plugged/vim-surround/.github/FUNDING.yml, dotfiles/.vim/plugged/vim-surround/doc/surround.txt, dotfiles/.vim/plugged/vim-surround/plugin/surround.vim, dotfiles/.vim/plugged/vim-surround/.gitignore, dotfiles/.vim/plugged/vim-surround/.gitrepo, dotfiles/.vim/plugged/vim-surround/README.markdown, dotfiles/.vim/plugged/zoxide.vim/autoload/zoxide.vim, dotfiles/.vim/plugged/zoxide.vim/doc/zoxide-vim.txt, dotfiles/.vim/plugged/zoxide.vim/lua/zoxide-vim.lua, dotfiles/.vim/plugged/zoxide.vim/plugin/zoxide.vim, dotfiles/.vim/plugged/zoxide.vim/.gitrepo, dotfiles/.vim/plugged/zoxide.vim/LICENSE, dotfiles/.vim/plugged/zoxide.vim/README.md, dotfiles/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Dark.dvtcolortheme, dotfiles/Library/Developer/Xcode/UserData/FontAndColorThemes/Betelgeuse Light.dvtcolortheme, dotfiles/Library/Preferences/com.apple.Terminal.plist, dotfiles/.bash_logout, .local/p10k.zsh, .local/fzf-tmux.sh, dotfiles/.Xresources, dotfiles/.bashrc, dotfiles/.bash_profile, dotfiles/.editorconfig, dotfiles/.gitconfig, dotfiles/.inputrc, dotfiles/.npmrc, dotfiles/.profile, dotfiles/.tmux.conf, dotfiles/.tmux.conf.local, dotfiles/.vimrc, dotfiles/.zshrc
2812 lines
81 KiB
VimL
2812 lines
81 KiB
VimL
" vim-plug: Vim plugin manager
|
|
" ============================
|
|
"
|
|
" Download plug.vim and put it in ~/.vim/autoload
|
|
"
|
|
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
|
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
"
|
|
" Edit your .vimrc
|
|
"
|
|
" call plug#begin('~/.vim/plugged')
|
|
"
|
|
" " Make sure you use single quotes
|
|
"
|
|
" " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
|
|
" Plug 'junegunn/vim-easy-align'
|
|
"
|
|
" " Any valid git URL is allowed
|
|
" Plug 'https://github.com/junegunn/vim-github-dashboard.git'
|
|
"
|
|
" " Multiple Plug commands can be written in a single line using | separators
|
|
" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
|
|
"
|
|
" " On-demand loading
|
|
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
|
|
" Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
|
|
"
|
|
" " Using a non-default branch
|
|
" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
|
|
"
|
|
" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
|
|
" Plug 'fatih/vim-go', { 'tag': '*' }
|
|
"
|
|
" " Plugin options
|
|
" Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
|
|
"
|
|
" " Plugin outside ~/.vim/plugged with post-update hook
|
|
" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
|
|
"
|
|
" " Unmanaged plugin (manually installed and updated)
|
|
" Plug '~/my-prototype-plugin'
|
|
"
|
|
" " Initialize plugin system
|
|
" call plug#end()
|
|
"
|
|
" Then reload .vimrc and :PlugInstall to install plugins.
|
|
"
|
|
" Plug options:
|
|
"
|
|
"| Option | Description |
|
|
"| ----------------------- | ------------------------------------------------ |
|
|
"| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use |
|
|
"| `rtp` | Subdirectory that contains Vim plugin |
|
|
"| `dir` | Custom directory for the plugin |
|
|
"| `as` | Use different name for the plugin |
|
|
"| `do` | Post-update hook (string or funcref) |
|
|
"| `on` | On-demand loading: Commands or `<Plug>`-mappings |
|
|
"| `for` | On-demand loading: File types |
|
|
"| `frozen` | Do not update unless explicitly specified |
|
|
"
|
|
" More information: https://github.com/junegunn/vim-plug
|
|
"
|
|
"
|
|
" Copyright (c) 2017 Junegunn Choi
|
|
"
|
|
" MIT License
|
|
"
|
|
" Permission is hereby granted, free of charge, to any person obtaining
|
|
" a copy of this software and associated documentation files (the
|
|
" "Software"), to deal in the Software without restriction, including
|
|
" without limitation the rights to use, copy, modify, merge, publish,
|
|
" distribute, sublicense, and/or sell copies of the Software, and to
|
|
" permit persons to whom the Software is furnished to do so, subject to
|
|
" the following conditions:
|
|
"
|
|
" The above copyright notice and this permission notice shall be
|
|
" included in all copies or substantial portions of the Software.
|
|
"
|
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
if exists('g:loaded_plug')
|
|
finish
|
|
endif
|
|
let g:loaded_plug = 1
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
let s:plug_src = 'https://github.com/junegunn/vim-plug.git'
|
|
let s:plug_tab = get(s:, 'plug_tab', -1)
|
|
let s:plug_buf = get(s:, 'plug_buf', -1)
|
|
let s:mac_gui = has('gui_macvim') && has('gui_running')
|
|
let s:is_win = has('win32')
|
|
let s:nvim = has('nvim-0.2') || (has('nvim') && exists('*jobwait') && !s:is_win)
|
|
let s:vim8 = has('patch-8.0.0039') && exists('*job_start')
|
|
if s:is_win && &shellslash
|
|
set noshellslash
|
|
let s:me = resolve(expand('<sfile>:p'))
|
|
set shellslash
|
|
else
|
|
let s:me = resolve(expand('<sfile>:p'))
|
|
endif
|
|
let s:base_spec = { 'branch': '', 'frozen': 0 }
|
|
let s:TYPE = {
|
|
\ 'string': type(''),
|
|
\ 'list': type([]),
|
|
\ 'dict': type({}),
|
|
\ 'funcref': type(function('call'))
|
|
\ }
|
|
let s:loaded = get(s:, 'loaded', {})
|
|
let s:triggers = get(s:, 'triggers', {})
|
|
|
|
function! s:is_powershell(shell)
|
|
return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$'
|
|
endfunction
|
|
|
|
function! s:isabsolute(dir) abort
|
|
return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)')
|
|
endfunction
|
|
|
|
function! s:git_dir(dir) abort
|
|
let gitdir = s:trim(a:dir) . '/.git'
|
|
if isdirectory(gitdir)
|
|
return gitdir
|
|
endif
|
|
if !filereadable(gitdir)
|
|
return ''
|
|
endif
|
|
let gitdir = matchstr(get(readfile(gitdir), 0, ''), '^gitdir: \zs.*')
|
|
if len(gitdir) && !s:isabsolute(gitdir)
|
|
let gitdir = a:dir . '/' . gitdir
|
|
endif
|
|
return isdirectory(gitdir) ? gitdir : ''
|
|
endfunction
|
|
|
|
function! s:git_origin_url(dir) abort
|
|
let gitdir = s:git_dir(a:dir)
|
|
let config = gitdir . '/config'
|
|
if empty(gitdir) || !filereadable(config)
|
|
return ''
|
|
endif
|
|
return matchstr(join(readfile(config)), '\[remote "origin"\].\{-}url\s*=\s*\zs\S*\ze')
|
|
endfunction
|
|
|
|
function! s:git_revision(dir) abort
|
|
let gitdir = s:git_dir(a:dir)
|
|
let head = gitdir . '/HEAD'
|
|
if empty(gitdir) || !filereadable(head)
|
|
return ''
|
|
endif
|
|
|
|
let line = get(readfile(head), 0, '')
|
|
let ref = matchstr(line, '^ref: \zs.*')
|
|
if empty(ref)
|
|
return line
|
|
endif
|
|
|
|
if filereadable(gitdir . '/' . ref)
|
|
return get(readfile(gitdir . '/' . ref), 0, '')
|
|
endif
|
|
|
|
if filereadable(gitdir . '/packed-refs')
|
|
for line in readfile(gitdir . '/packed-refs')
|
|
if line =~# ' ' . ref
|
|
return matchstr(line, '^[0-9a-f]*')
|
|
endif
|
|
endfor
|
|
endif
|
|
|
|
return ''
|
|
endfunction
|
|
|
|
function! s:git_local_branch(dir) abort
|
|
let gitdir = s:git_dir(a:dir)
|
|
let head = gitdir . '/HEAD'
|
|
if empty(gitdir) || !filereadable(head)
|
|
return ''
|
|
endif
|
|
let branch = matchstr(get(readfile(head), 0, ''), '^ref: refs/heads/\zs.*')
|
|
return len(branch) ? branch : 'HEAD'
|
|
endfunction
|
|
|
|
function! s:git_origin_branch(spec)
|
|
if len(a:spec.branch)
|
|
return a:spec.branch
|
|
endif
|
|
|
|
" The file may not be present if this is a local repository
|
|
let gitdir = s:git_dir(a:spec.dir)
|
|
let origin_head = gitdir.'/refs/remotes/origin/HEAD'
|
|
if len(gitdir) && filereadable(origin_head)
|
|
return matchstr(get(readfile(origin_head), 0, ''),
|
|
\ '^ref: refs/remotes/origin/\zs.*')
|
|
endif
|
|
|
|
" The command may not return the name of a branch in detached HEAD state
|
|
let result = s:lines(s:system('git symbolic-ref --short HEAD', a:spec.dir))
|
|
return v:shell_error ? '' : result[-1]
|
|
endfunction
|
|
|
|
if s:is_win
|
|
function! s:plug_call(fn, ...)
|
|
let shellslash = &shellslash
|
|
try
|
|
set noshellslash
|
|
return call(a:fn, a:000)
|
|
finally
|
|
let &shellslash = shellslash
|
|
endtry
|
|
endfunction
|
|
else
|
|
function! s:plug_call(fn, ...)
|
|
return call(a:fn, a:000)
|
|
endfunction
|
|
endif
|
|
|
|
function! s:plug_getcwd()
|
|
return s:plug_call('getcwd')
|
|
endfunction
|
|
|
|
function! s:plug_fnamemodify(fname, mods)
|
|
return s:plug_call('fnamemodify', a:fname, a:mods)
|
|
endfunction
|
|
|
|
function! s:plug_expand(fmt)
|
|
return s:plug_call('expand', a:fmt, 1)
|
|
endfunction
|
|
|
|
function! s:plug_tempname()
|
|
return s:plug_call('tempname')
|
|
endfunction
|
|
|
|
function! plug#begin(...)
|
|
if a:0 > 0
|
|
let s:plug_home_org = a:1
|
|
let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p'))
|
|
elseif exists('g:plug_home')
|
|
let home = s:path(g:plug_home)
|
|
elseif has('nvim')
|
|
let home = stdpath('data') . '/plugged'
|
|
elseif !empty(&rtp)
|
|
let home = s:path(split(&rtp, ',')[0]) . '/plugged'
|
|
else
|
|
return s:err('Unable to determine plug home. Try calling plug#begin() with a path argument.')
|
|
endif
|
|
if s:plug_fnamemodify(home, ':t') ==# 'plugin' && s:plug_fnamemodify(home, ':h') ==# s:first_rtp
|
|
return s:err('Invalid plug home. '.home.' is a standard Vim runtime path and is not allowed.')
|
|
endif
|
|
|
|
let g:plug_home = home
|
|
let g:plugs = {}
|
|
let g:plugs_order = []
|
|
let s:triggers = {}
|
|
|
|
call s:define_commands()
|
|
return 1
|
|
endfunction
|
|
|
|
function! s:define_commands()
|
|
command! -nargs=+ -bar Plug call plug#(<args>)
|
|
if !executable('git')
|
|
return s:err('`git` executable not found. Most commands will not be available. To suppress this message, prepend `silent!` to `call plug#begin(...)`.')
|
|
endif
|
|
if has('win32')
|
|
\ && &shellslash
|
|
\ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell))
|
|
return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.')
|
|
endif
|
|
if !has('nvim')
|
|
\ && (has('win32') || has('win32unix'))
|
|
\ && !has('multi_byte')
|
|
return s:err('Vim needs +multi_byte feature on Windows to run shell commands. Enable +iconv for best results.')
|
|
endif
|
|
command! -nargs=* -bar -bang -complete=customlist,s:names PlugInstall call s:install(<bang>0, [<f-args>])
|
|
command! -nargs=* -bar -bang -complete=customlist,s:names PlugUpdate call s:update(<bang>0, [<f-args>])
|
|
command! -nargs=0 -bar -bang PlugClean call s:clean(<bang>0)
|
|
command! -nargs=0 -bar PlugUpgrade if s:upgrade() | execute 'source' s:esc(s:me) | endif
|
|
command! -nargs=0 -bar PlugStatus call s:status()
|
|
command! -nargs=0 -bar PlugDiff call s:diff()
|
|
command! -nargs=? -bar -bang -complete=file PlugSnapshot call s:snapshot(<bang>0, <f-args>)
|
|
endfunction
|
|
|
|
function! s:to_a(v)
|
|
return type(a:v) == s:TYPE.list ? a:v : [a:v]
|
|
endfunction
|
|
|
|
function! s:to_s(v)
|
|
return type(a:v) == s:TYPE.string ? a:v : join(a:v, "\n") . "\n"
|
|
endfunction
|
|
|
|
function! s:glob(from, pattern)
|
|
return s:lines(globpath(a:from, a:pattern))
|
|
endfunction
|
|
|
|
function! s:source(from, ...)
|
|
let found = 0
|
|
for pattern in a:000
|
|
for vim in s:glob(a:from, pattern)
|
|
execute 'source' s:esc(vim)
|
|
let found = 1
|
|
endfor
|
|
endfor
|
|
return found
|
|
endfunction
|
|
|
|
function! s:assoc(dict, key, val)
|
|
let a:dict[a:key] = add(get(a:dict, a:key, []), a:val)
|
|
endfunction
|
|
|
|
function! s:ask(message, ...)
|
|
call inputsave()
|
|
echohl WarningMsg
|
|
let answer = input(a:message.(a:0 ? ' (y/N/a) ' : ' (y/N) '))
|
|
echohl None
|
|
call inputrestore()
|
|
echo "\r"
|
|
return (a:0 && answer =~? '^a') ? 2 : (answer =~? '^y') ? 1 : 0
|
|
endfunction
|
|
|
|
function! s:ask_no_interrupt(...)
|
|
try
|
|
return call('s:ask', a:000)
|
|
catch
|
|
return 0
|
|
endtry
|
|
endfunction
|
|
|
|
function! s:lazy(plug, opt)
|
|
return has_key(a:plug, a:opt) &&
|
|
\ (empty(s:to_a(a:plug[a:opt])) ||
|
|
\ !isdirectory(a:plug.dir) ||
|
|
\ len(s:glob(s:rtp(a:plug), 'plugin')) ||
|
|
\ len(s:glob(s:rtp(a:plug), 'after/plugin')))
|
|
endfunction
|
|
|
|
function! plug#end()
|
|
if !exists('g:plugs')
|
|
return s:err('plug#end() called without calling plug#begin() first')
|
|
endif
|
|
|
|
if exists('#PlugLOD')
|
|
augroup PlugLOD
|
|
autocmd!
|
|
augroup END
|
|
augroup! PlugLOD
|
|
endif
|
|
let lod = { 'ft': {}, 'map': {}, 'cmd': {} }
|
|
|
|
if get(g:, 'did_load_filetypes', 0)
|
|
filetype off
|
|
endif
|
|
for name in g:plugs_order
|
|
if !has_key(g:plugs, name)
|
|
continue
|
|
endif
|
|
let plug = g:plugs[name]
|
|
if get(s:loaded, name, 0) || !s:lazy(plug, 'on') && !s:lazy(plug, 'for')
|
|
let s:loaded[name] = 1
|
|
continue
|
|
endif
|
|
|
|
if has_key(plug, 'on')
|
|
let s:triggers[name] = { 'map': [], 'cmd': [] }
|
|
for cmd in s:to_a(plug.on)
|
|
if cmd =~? '^<Plug>.\+'
|
|
if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i'))
|
|
call s:assoc(lod.map, cmd, name)
|
|
endif
|
|
call add(s:triggers[name].map, cmd)
|
|
elseif cmd =~# '^[A-Z]'
|
|
let cmd = substitute(cmd, '!*$', '', '')
|
|
if exists(':'.cmd) != 2
|
|
call s:assoc(lod.cmd, cmd, name)
|
|
endif
|
|
call add(s:triggers[name].cmd, cmd)
|
|
else
|
|
call s:err('Invalid `on` option: '.cmd.
|
|
\ '. Should start with an uppercase letter or `<Plug>`.')
|
|
endif
|
|
endfor
|
|
endif
|
|
|
|
if has_key(plug, 'for')
|
|
let types = s:to_a(plug.for)
|
|
if !empty(types)
|
|
augroup filetypedetect
|
|
call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim')
|
|
augroup END
|
|
endif
|
|
for type in types
|
|
call s:assoc(lod.ft, type, name)
|
|
endfor
|
|
endif
|
|
endfor
|
|
|
|
for [cmd, names] in items(lod.cmd)
|
|
execute printf(
|
|
\ 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "<bang>", <line1>, <line2>, <q-args>, %s)',
|
|
\ cmd, string(cmd), string(names))
|
|
endfor
|
|
|
|
for [map, names] in items(lod.map)
|
|
for [mode, map_prefix, key_prefix] in
|
|
\ [['i', '<C-\><C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']]
|
|
execute printf(
|
|
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>',
|
|
\ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix)
|
|
endfor
|
|
endfor
|
|
|
|
for [ft, names] in items(lod.ft)
|
|
augroup PlugLOD
|
|
execute printf('autocmd FileType %s call <SID>lod_ft(%s, %s)',
|
|
\ ft, string(ft), string(names))
|
|
augroup END
|
|
endfor
|
|
|
|
call s:reorg_rtp()
|
|
filetype plugin indent on
|
|
if has('vim_starting')
|
|
if has('syntax') && !exists('g:syntax_on')
|
|
syntax enable
|
|
end
|
|
else
|
|
call s:reload_plugins()
|
|
endif
|
|
endfunction
|
|
|
|
function! s:loaded_names()
|
|
return filter(copy(g:plugs_order), 'get(s:loaded, v:val, 0)')
|
|
endfunction
|
|
|
|
function! s:load_plugin(spec)
|
|
call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim')
|
|
endfunction
|
|
|
|
function! s:reload_plugins()
|
|
for name in s:loaded_names()
|
|
call s:load_plugin(g:plugs[name])
|
|
endfor
|
|
endfunction
|
|
|
|
function! s:trim(str)
|
|
return substitute(a:str, '[\/]\+$', '', '')
|
|
endfunction
|
|
|
|
function! s:version_requirement(val, min)
|
|
for idx in range(0, len(a:min) - 1)
|
|
let v = get(a:val, idx, 0)
|
|
if v < a:min[idx] | return 0
|
|
elseif v > a:min[idx] | return 1
|
|
endif
|
|
endfor
|
|
return 1
|
|
endfunction
|
|
|
|
function! s:git_version_requirement(...)
|
|
if !exists('s:git_version')
|
|
let s:git_version = map(split(split(s:system(['git', '--version']))[2], '\.'), 'str2nr(v:val)')
|
|
endif
|
|
return s:version_requirement(s:git_version, a:000)
|
|
endfunction
|
|
|
|
function! s:progress_opt(base)
|
|
return a:base && !s:is_win &&
|
|
\ s:git_version_requirement(1, 7, 1) ? '--progress' : ''
|
|
endfunction
|
|
|
|
function! s:rtp(spec)
|
|
return s:path(a:spec.dir . get(a:spec, 'rtp', ''))
|
|
endfunction
|
|
|
|
if s:is_win
|
|
function! s:path(path)
|
|
return s:trim(substitute(a:path, '/', '\', 'g'))
|
|
endfunction
|
|
|
|
function! s:dirpath(path)
|
|
return s:path(a:path) . '\'
|
|
endfunction
|
|
|
|
function! s:is_local_plug(repo)
|
|
return a:repo =~? '^[a-z]:\|^[%~]'
|
|
endfunction
|
|
|
|
" Copied from fzf
|
|
function! s:wrap_cmds(cmds)
|
|
let cmds = [
|
|
\ '@echo off',
|
|
\ 'setlocal enabledelayedexpansion']
|
|
\ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds])
|
|
\ + ['endlocal']
|
|
if has('iconv')
|
|
if !exists('s:codepage')
|
|
let s:codepage = libcallnr('kernel32.dll', 'GetACP', 0)
|
|
endif
|
|
return map(cmds, printf('iconv(v:val."\r", "%s", "cp%d")', &encoding, s:codepage))
|
|
endif
|
|
return map(cmds, 'v:val."\r"')
|
|
endfunction
|
|
|
|
function! s:batchfile(cmd)
|
|
let batchfile = s:plug_tempname().'.bat'
|
|
call writefile(s:wrap_cmds(a:cmd), batchfile)
|
|
let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0})
|
|
if s:is_powershell(&shell)
|
|
let cmd = '& ' . cmd
|
|
endif
|
|
return [batchfile, cmd]
|
|
endfunction
|
|
else
|
|
function! s:path(path)
|
|
return s:trim(a:path)
|
|
endfunction
|
|
|
|
function! s:dirpath(path)
|
|
return substitute(a:path, '[/\\]*$', '/', '')
|
|
endfunction
|
|
|
|
function! s:is_local_plug(repo)
|
|
return a:repo[0] =~ '[/$~]'
|
|
endfunction
|
|
endif
|
|
|
|
function! s:err(msg)
|
|
echohl ErrorMsg
|
|
echom '[vim-plug] '.a:msg
|
|
echohl None
|
|
endfunction
|
|
|
|
function! s:warn(cmd, msg)
|
|
echohl WarningMsg
|
|
execute a:cmd 'a:msg'
|
|
echohl None
|
|
endfunction
|
|
|
|
function! s:esc(path)
|
|
return escape(a:path, ' ')
|
|
endfunction
|
|
|
|
function! s:escrtp(path)
|
|
return escape(a:path, ' ,')
|
|
endfunction
|
|
|
|
function! s:remove_rtp()
|
|
for name in s:loaded_names()
|
|
let rtp = s:rtp(g:plugs[name])
|
|
execute 'set rtp-='.s:escrtp(rtp)
|
|
let after = globpath(rtp, 'after')
|
|
if isdirectory(after)
|
|
execute 'set rtp-='.s:escrtp(after)
|
|
endif
|
|
endfor
|
|
endfunction
|
|
|
|
function! s:reorg_rtp()
|
|
if !empty(s:first_rtp)
|
|
execute 'set rtp-='.s:first_rtp
|
|
execute 'set rtp-='.s:last_rtp
|
|
endif
|
|
|
|
" &rtp is modified from outside
|
|
if exists('s:prtp') && s:prtp !=# &rtp
|
|
call s:remove_rtp()
|
|
unlet! s:middle
|
|
endif
|
|
|
|
let s:middle = get(s:, 'middle', &rtp)
|
|
let rtps = map(s:loaded_names(), 's:rtp(g:plugs[v:val])')
|
|
let afters = filter(map(copy(rtps), 'globpath(v:val, "after")'), '!empty(v:val)')
|
|
let rtp = join(map(rtps, 'escape(v:val, ",")'), ',')
|
|
\ . ','.s:middle.','
|
|
\ . join(map(afters, 'escape(v:val, ",")'), ',')
|
|
let &rtp = substitute(substitute(rtp, ',,*', ',', 'g'), '^,\|,$', '', 'g')
|
|
let s:prtp = &rtp
|
|
|
|
if !empty(s:first_rtp)
|
|
execute 'set rtp^='.s:first_rtp
|
|
execute 'set rtp+='.s:last_rtp
|
|
endif
|
|
endfunction
|
|
|
|
function! s:doautocmd(...)
|
|
if exists('#'.join(a:000, '#'))
|
|
execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '<nomodeline>' : '') join(a:000)
|
|
endif
|
|
endfunction
|
|
|
|
function! s:dobufread(names)
|
|
for name in a:names
|
|
let path = s:rtp(g:plugs[name])
|
|
for dir in ['ftdetect', 'ftplugin', 'after/ftdetect', 'after/ftplugin']
|
|
if len(finddir(dir, path))
|
|
if exists('#BufRead')
|
|
doautocmd BufRead
|
|
endif
|
|
return
|
|
endif
|
|
endfor
|
|
endfor
|
|
endfunction
|
|
|
|
function! plug#load(...)
|
|
if a:0 == 0
|
|
return s:err('Argument missing: plugin name(s) required')
|
|
endif
|
|
if !exists('g:plugs')
|
|
return s:err('plug#begin was not called')
|
|
endif
|
|
let names = a:0 == 1 && type(a:1) == s:TYPE.list ? a:1 : a:000
|
|
let unknowns = filter(copy(names), '!has_key(g:plugs, v:val)')
|
|
if !empty(unknowns)
|
|
let s = len(unknowns) > 1 ? 's' : ''
|
|
return s:err(printf('Unknown plugin%s: %s', s, join(unknowns, ', ')))
|
|
end
|
|
let unloaded = filter(copy(names), '!get(s:loaded, v:val, 0)')
|
|
if !empty(unloaded)
|
|
for name in unloaded
|
|
call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
endfor
|
|
call s:dobufread(unloaded)
|
|
return 1
|
|
end
|
|
return 0
|
|
endfunction
|
|
|
|
function! s:remove_triggers(name)
|
|
if !has_key(s:triggers, a:name)
|
|
return
|
|
endif
|
|
for cmd in s:triggers[a:name].cmd
|
|
execute 'silent! delc' cmd
|
|
endfor
|
|
for map in s:triggers[a:name].map
|
|
execute 'silent! unmap' map
|
|
execute 'silent! iunmap' map
|
|
endfor
|
|
call remove(s:triggers, a:name)
|
|
endfunction
|
|
|
|
function! s:lod(names, types, ...)
|
|
for name in a:names
|
|
call s:remove_triggers(name)
|
|
let s:loaded[name] = 1
|
|
endfor
|
|
call s:reorg_rtp()
|
|
|
|
for name in a:names
|
|
let rtp = s:rtp(g:plugs[name])
|
|
for dir in a:types
|
|
call s:source(rtp, dir.'/**/*.vim')
|
|
endfor
|
|
if a:0
|
|
if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2))
|
|
execute 'runtime' a:1
|
|
endif
|
|
call s:source(rtp, a:2)
|
|
endif
|
|
call s:doautocmd('User', name)
|
|
endfor
|
|
endfunction
|
|
|
|
function! s:lod_ft(pat, names)
|
|
let syn = 'syntax/'.a:pat.'.vim'
|
|
call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn)
|
|
execute 'autocmd! PlugLOD FileType' a:pat
|
|
call s:doautocmd('filetypeplugin', 'FileType')
|
|
call s:doautocmd('filetypeindent', 'FileType')
|
|
endfunction
|
|
|
|
function! s:lod_cmd(cmd, bang, l1, l2, args, names)
|
|
call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
call s:dobufread(a:names)
|
|
execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args)
|
|
endfunction
|
|
|
|
function! s:lod_map(map, names, with_prefix, prefix)
|
|
call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin'])
|
|
call s:dobufread(a:names)
|
|
let extra = ''
|
|
while 1
|
|
let c = getchar(0)
|
|
if c == 0
|
|
break
|
|
endif
|
|
let extra .= nr2char(c)
|
|
endwhile
|
|
|
|
if a:with_prefix
|
|
let prefix = v:count ? v:count : ''
|
|
let prefix .= '"'.v:register.a:prefix
|
|
if mode(1) == 'no'
|
|
if v:operator == 'c'
|
|
let prefix = "\<esc>" . prefix
|
|
endif
|
|
let prefix .= v:operator
|
|
endif
|
|
call feedkeys(prefix, 'n')
|
|
endif
|
|
call feedkeys(substitute(a:map, '^<Plug>', "\<Plug>", '') . extra)
|
|
endfunction
|
|
|
|
function! plug#(repo, ...)
|
|
if a:0 > 1
|
|
return s:err('Invalid number of arguments (1..2)')
|
|
endif
|
|
|
|
try
|
|
let repo = s:trim(a:repo)
|
|
let opts = a:0 == 1 ? s:parse_options(a:1) : s:base_spec
|
|
let name = get(opts, 'as', s:plug_fnamemodify(repo, ':t:s?\.git$??'))
|
|
let spec = extend(s:infer_properties(name, repo), opts)
|
|
if !has_key(g:plugs, name)
|
|
call add(g:plugs_order, name)
|
|
endif
|
|
let g:plugs[name] = spec
|
|
let s:loaded[name] = get(s:loaded, name, 0)
|
|
catch
|
|
return s:err(repo . ' ' . v:exception)
|
|
endtry
|
|
endfunction
|
|
|
|
function! s:parse_options(arg)
|
|
let opts = copy(s:base_spec)
|
|
let type = type(a:arg)
|
|
let opt_errfmt = 'Invalid argument for "%s" option of :Plug (expected: %s)'
|
|
if type == s:TYPE.string
|
|
if empty(a:arg)
|
|
throw printf(opt_errfmt, 'tag', 'string')
|
|
endif
|
|
let opts.tag = a:arg
|
|
elseif type == s:TYPE.dict
|
|
for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as']
|
|
if has_key(a:arg, opt)
|
|
\ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt]))
|
|
throw printf(opt_errfmt, opt, 'string')
|
|
endif
|
|
endfor
|
|
for opt in ['on', 'for']
|
|
if has_key(a:arg, opt)
|
|
\ && type(a:arg[opt]) != s:TYPE.list
|
|
\ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt]))
|
|
throw printf(opt_errfmt, opt, 'string or list')
|
|
endif
|
|
endfor
|
|
if has_key(a:arg, 'do')
|
|
\ && type(a:arg.do) != s:TYPE.funcref
|
|
\ && (type(a:arg.do) != s:TYPE.string || empty(a:arg.do))
|
|
throw printf(opt_errfmt, 'do', 'string or funcref')
|
|
endif
|
|
call extend(opts, a:arg)
|
|
if has_key(opts, 'dir')
|
|
let opts.dir = s:dirpath(s:plug_expand(opts.dir))
|
|
endif
|
|
else
|
|
throw 'Invalid argument type (expected: string or dictionary)'
|
|
endif
|
|
return opts
|
|
endfunction
|
|
|
|
function! s:infer_properties(name, repo)
|
|
let repo = a:repo
|
|
if s:is_local_plug(repo)
|
|
return { 'dir': s:dirpath(s:plug_expand(repo)) }
|
|
else
|
|
if repo =~ ':'
|
|
let uri = repo
|
|
else
|
|
if repo !~ '/'
|
|
throw printf('Invalid argument: %s (implicit `vim-scripts'' expansion is deprecated)', repo)
|
|
endif
|
|
let fmt = get(g:, 'plug_url_format', 'https://git::@github.com/%s.git')
|
|
let uri = printf(fmt, repo)
|
|
endif
|
|
return { 'dir': s:dirpath(g:plug_home.'/'.a:name), 'uri': uri }
|
|
endif
|
|
endfunction
|
|
|
|
function! s:install(force, names)
|
|
call s:update_impl(0, a:force, a:names)
|
|
endfunction
|
|
|
|
function! s:update(force, names)
|
|
call s:update_impl(1, a:force, a:names)
|
|
endfunction
|
|
|
|
function! plug#helptags()
|
|
if !exists('g:plugs')
|
|
return s:err('plug#begin was not called')
|
|
endif
|
|
for spec in values(g:plugs)
|
|
let docd = join([s:rtp(spec), 'doc'], '/')
|
|
if isdirectory(docd)
|
|
silent! execute 'helptags' s:esc(docd)
|
|
endif
|
|
endfor
|
|
return 1
|
|
endfunction
|
|
|
|
function! s:syntax()
|
|
syntax clear
|
|
syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber
|
|
syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX
|
|
syn match plugNumber /[0-9]\+[0-9.]*/ contained
|
|
syn match plugBracket /[[\]]/ contained
|
|
syn match plugX /x/ contained
|
|
syn match plugDash /^-\{1}\ /
|
|
syn match plugPlus /^+/
|
|
syn match plugStar /^*/
|
|
syn match plugMessage /\(^- \)\@<=.*/
|
|
syn match plugName /\(^- \)\@<=[^ ]*:/
|
|
syn match plugSha /\%(: \)\@<=[0-9a-f]\{4,}$/
|
|
syn match plugTag /(tag: [^)]\+)/
|
|
syn match plugInstall /\(^+ \)\@<=[^:]*/
|
|
syn match plugUpdate /\(^* \)\@<=[^:]*/
|
|
syn match plugCommit /^ \X*[0-9a-f]\{7,9} .*/ contains=plugRelDate,plugEdge,plugTag
|
|
syn match plugEdge /^ \X\+$/
|
|
syn match plugEdge /^ \X*/ contained nextgroup=plugSha
|
|
syn match plugSha /[0-9a-f]\{7,9}/ contained
|
|
syn match plugRelDate /([^)]*)$/ contained
|
|
syn match plugNotLoaded /(not loaded)$/
|
|
syn match plugError /^x.*/
|
|
syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/
|
|
syn match plugH2 /^.*:\n-\+$/
|
|
syn match plugH2 /^-\{2,}/
|
|
syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean
|
|
hi def link plug1 Title
|
|
hi def link plug2 Repeat
|
|
hi def link plugH2 Type
|
|
hi def link plugX Exception
|
|
hi def link plugBracket Structure
|
|
hi def link plugNumber Number
|
|
|
|
hi def link plugDash Special
|
|
hi def link plugPlus Constant
|
|
hi def link plugStar Boolean
|
|
|
|
hi def link plugMessage Function
|
|
hi def link plugName Label
|
|
hi def link plugInstall Function
|
|
hi def link plugUpdate Type
|
|
|
|
hi def link plugError Error
|
|
hi def link plugDeleted Ignore
|
|
hi def link plugRelDate Comment
|
|
hi def link plugEdge PreProc
|
|
hi def link plugSha Identifier
|
|
hi def link plugTag Constant
|
|
|
|
hi def link plugNotLoaded Comment
|
|
endfunction
|
|
|
|
function! s:lpad(str, len)
|
|
return a:str . repeat(' ', a:len - len(a:str))
|
|
endfunction
|
|
|
|
function! s:lines(msg)
|
|
return split(a:msg, "[\r\n]")
|
|
endfunction
|
|
|
|
function! s:lastline(msg)
|
|
return get(s:lines(a:msg), -1, '')
|
|
endfunction
|
|
|
|
function! s:new_window()
|
|
execute get(g:, 'plug_window', 'vertical topleft new')
|
|
endfunction
|
|
|
|
function! s:plug_window_exists()
|
|
let buflist = tabpagebuflist(s:plug_tab)
|
|
return !empty(buflist) && index(buflist, s:plug_buf) >= 0
|
|
endfunction
|
|
|
|
function! s:switch_in()
|
|
if !s:plug_window_exists()
|
|
return 0
|
|
endif
|
|
|
|
if winbufnr(0) != s:plug_buf
|
|
let s:pos = [tabpagenr(), winnr(), winsaveview()]
|
|
execute 'normal!' s:plug_tab.'gt'
|
|
let winnr = bufwinnr(s:plug_buf)
|
|
execute winnr.'wincmd w'
|
|
call add(s:pos, winsaveview())
|
|
else
|
|
let s:pos = [winsaveview()]
|
|
endif
|
|
|
|
setlocal modifiable
|
|
return 1
|
|
endfunction
|
|
|
|
function! s:switch_out(...)
|
|
call winrestview(s:pos[-1])
|
|
setlocal nomodifiable
|
|
if a:0 > 0
|
|
execute a:1
|
|
endif
|
|
|
|
if len(s:pos) > 1
|
|
execute 'normal!' s:pos[0].'gt'
|
|
execute s:pos[1] 'wincmd w'
|
|
call winrestview(s:pos[2])
|
|
endif
|
|
endfunction
|
|
|
|
function! s:finish_bindings()
|
|
nnoremap <silent> <buffer> R :call <SID>retry()<cr>
|
|
nnoremap <silent> <buffer> D :PlugDiff<cr>
|
|
nnoremap <silent> <buffer> S :PlugStatus<cr>
|
|
nnoremap <silent> <buffer> U :call <SID>status_update()<cr>
|
|
xnoremap <silent> <buffer> U :call <SID>status_update()<cr>
|
|
nnoremap <silent> <buffer> ]] :silent! call <SID>section('')<cr>
|
|
nnoremap <silent> <buffer> [[ :silent! call <SID>section('b')<cr>
|
|
endfunction
|
|
|
|
function! s:prepare(...)
|
|
if empty(s:plug_getcwd())
|
|
throw 'Invalid current working directory. Cannot proceed.'
|
|
endif
|
|
|
|
for evar in ['$GIT_DIR', '$GIT_WORK_TREE']
|
|
if exists(evar)
|
|
throw evar.' detected. Cannot proceed.'
|
|
endif
|
|
endfor
|
|
|
|
call s:job_abort()
|
|
if s:switch_in()
|
|
if b:plug_preview == 1
|
|
pc
|
|
endif
|
|
enew
|
|
else
|
|
call s:new_window()
|
|
endif
|
|
|
|
nnoremap <silent> <buffer> q :call <SID>close_pane()<cr>
|
|
if a:0 == 0
|
|
call s:finish_bindings()
|
|
endif
|
|
let b:plug_preview = -1
|
|
let s:plug_tab = tabpagenr()
|
|
let s:plug_buf = winbufnr(0)
|
|
call s:assign_name()
|
|
|
|
for k in ['<cr>', 'L', 'o', 'X', 'd', 'dd']
|
|
execute 'silent! unmap <buffer>' k
|
|
endfor
|
|
setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell
|
|
if exists('+colorcolumn')
|
|
setlocal colorcolumn=
|
|
endif
|
|
setf vim-plug
|
|
if exists('g:syntax_on')
|
|
call s:syntax()
|
|
endif
|
|
endfunction
|
|
|
|
function! s:close_pane()
|
|
if b:plug_preview == 1
|
|
pc
|
|
let b:plug_preview = -1
|
|
else
|
|
bd
|
|
endif
|
|
endfunction
|
|
|
|
function! s:assign_name()
|
|
" Assign buffer name
|
|
let prefix = '[Plugins]'
|
|
let name = prefix
|
|
let idx = 2
|
|
while bufexists(name)
|
|
let name = printf('%s (%s)', prefix, idx)
|
|
let idx = idx + 1
|
|
endwhile
|
|
silent! execute 'f' fnameescape(name)
|
|
endfunction
|
|
|
|
function! s:chsh(swap)
|
|
let prev = [&shell, &shellcmdflag, &shellredir]
|
|
if !s:is_win
|
|
set shell=sh
|
|
endif
|
|
if a:swap
|
|
if s:is_powershell(&shell)
|
|
let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s'
|
|
elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$'
|
|
set shellredir=>%s\ 2>&1
|
|
endif
|
|
endif
|
|
return prev
|
|
endfunction
|
|
|
|
function! s:bang(cmd, ...)
|
|
let batchfile = ''
|
|
try
|
|
let [sh, shellcmdflag, shrd] = s:chsh(a:0)
|
|
" FIXME: Escaping is incomplete. We could use shellescape with eval,
|
|
" but it won't work on Windows.
|
|
let cmd = a:0 ? s:with_cd(a:cmd, a:1) : a:cmd
|
|
if s:is_win
|
|
let [batchfile, cmd] = s:batchfile(cmd)
|
|
endif
|
|
let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%')
|
|
execute "normal! :execute g:_plug_bang\<cr>\<cr>"
|
|
finally
|
|
unlet g:_plug_bang
|
|
let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd]
|
|
if s:is_win && filereadable(batchfile)
|
|
call delete(batchfile)
|
|
endif
|
|
endtry
|
|
return v:shell_error ? 'Exit status: ' . v:shell_error : ''
|
|
endfunction
|
|
|
|
function! s:regress_bar()
|
|
let bar = substitute(getline(2)[1:-2], '.*\zs=', 'x', '')
|
|
call s:progress_bar(2, bar, len(bar))
|
|
endfunction
|
|
|
|
function! s:is_updated(dir)
|
|
return !empty(s:system_chomp(['git', 'log', '--pretty=format:%h', 'HEAD...HEAD@{1}'], a:dir))
|
|
endfunction
|
|
|
|
function! s:do(pull, force, todo)
|
|
for [name, spec] in items(a:todo)
|
|
if !isdirectory(spec.dir)
|
|
continue
|
|
endif
|
|
let installed = has_key(s:update.new, name)
|
|
let updated = installed ? 0 :
|
|
\ (a:pull && index(s:update.errors, name) < 0 && s:is_updated(spec.dir))
|
|
if a:force || installed || updated
|
|
execute 'cd' s:esc(spec.dir)
|
|
call append(3, '- Post-update hook for '. name .' ... ')
|
|
let error = ''
|
|
let type = type(spec.do)
|
|
if type == s:TYPE.string
|
|
if spec.do[0] == ':'
|
|
if !get(s:loaded, name, 0)
|
|
let s:loaded[name] = 1
|
|
call s:reorg_rtp()
|
|
endif
|
|
call s:load_plugin(spec)
|
|
try
|
|
execute spec.do[1:]
|
|
catch
|
|
let error = v:exception
|
|
endtry
|
|
if !s:plug_window_exists()
|
|
cd -
|
|
throw 'Warning: vim-plug was terminated by the post-update hook of '.name
|
|
endif
|
|
else
|
|
let error = s:bang(spec.do)
|
|
endif
|
|
elseif type == s:TYPE.funcref
|
|
try
|
|
call s:load_plugin(spec)
|
|
let status = installed ? 'installed' : (updated ? 'updated' : 'unchanged')
|
|
call spec.do({ 'name': name, 'status': status, 'force': a:force })
|
|
catch
|
|
let error = v:exception
|
|
endtry
|
|
else
|
|
let error = 'Invalid hook type'
|
|
endif
|
|
call s:switch_in()
|
|
call setline(4, empty(error) ? (getline(4) . 'OK')
|
|
\ : ('x' . getline(4)[1:] . error))
|
|
if !empty(error)
|
|
call add(s:update.errors, name)
|
|
call s:regress_bar()
|
|
endif
|
|
cd -
|
|
endif
|
|
endfor
|
|
endfunction
|
|
|
|
function! s:hash_match(a, b)
|
|
return stridx(a:a, a:b) == 0 || stridx(a:b, a:a) == 0
|
|
endfunction
|
|
|
|
function! s:checkout(spec)
|
|
let sha = a:spec.commit
|
|
let output = s:git_revision(a:spec.dir)
|
|
if !empty(output) && !s:hash_match(sha, s:lines(output)[0])
|
|
let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : ''
|
|
let output = s:system(
|
|
\ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir)
|
|
endif
|
|
return output
|
|
endfunction
|
|
|
|
function! s:finish(pull)
|
|
let new_frozen = len(filter(keys(s:update.new), 'g:plugs[v:val].frozen'))
|
|
if new_frozen
|
|
let s = new_frozen > 1 ? 's' : ''
|
|
call append(3, printf('- Installed %d frozen plugin%s', new_frozen, s))
|
|
endif
|
|
call append(3, '- Finishing ... ') | 4
|
|
redraw
|
|
call plug#helptags()
|
|
call plug#end()
|
|
call setline(4, getline(4) . 'Done!')
|
|
redraw
|
|
let msgs = []
|
|
if !empty(s:update.errors)
|
|
call add(msgs, "Press 'R' to retry.")
|
|
endif
|
|
if a:pull && len(s:update.new) < len(filter(getline(5, '$'),
|
|
\ "v:val =~ '^- ' && v:val !~# 'Already up.to.date'"))
|
|
call add(msgs, "Press 'D' to see the updated changes.")
|
|
endif
|
|
echo join(msgs, ' ')
|
|
call s:finish_bindings()
|
|
endfunction
|
|
|
|
function! s:retry()
|
|
if empty(s:update.errors)
|
|
return
|
|
endif
|
|
echo
|
|
call s:update_impl(s:update.pull, s:update.force,
|
|
\ extend(copy(s:update.errors), [s:update.threads]))
|
|
endfunction
|
|
|
|
function! s:is_managed(name)
|
|
return has_key(g:plugs[a:name], 'uri')
|
|
endfunction
|
|
|
|
function! s:names(...)
|
|
return sort(filter(keys(g:plugs), 'stridx(v:val, a:1) == 0 && s:is_managed(v:val)'))
|
|
endfunction
|
|
|
|
function! s:check_ruby()
|
|
silent! ruby require 'thread'; VIM::command("let g:plug_ruby = '#{RUBY_VERSION}'")
|
|
if !exists('g:plug_ruby')
|
|
redraw!
|
|
return s:warn('echom', 'Warning: Ruby interface is broken')
|
|
endif
|
|
let ruby_version = split(g:plug_ruby, '\.')
|
|
unlet g:plug_ruby
|
|
return s:version_requirement(ruby_version, [1, 8, 7])
|
|
endfunction
|
|
|
|
function! s:update_impl(pull, force, args) abort
|
|
let sync = index(a:args, '--sync') >= 0 || has('vim_starting')
|
|
let args = filter(copy(a:args), 'v:val != "--sync"')
|
|
let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ?
|
|
\ remove(args, -1) : get(g:, 'plug_threads', 16)
|
|
|
|
let managed = filter(copy(g:plugs), 's:is_managed(v:key)')
|
|
let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') :
|
|
\ filter(managed, 'index(args, v:key) >= 0')
|
|
|
|
if empty(todo)
|
|
return s:warn('echo', 'No plugin to '. (a:pull ? 'update' : 'install'))
|
|
endif
|
|
|
|
if !s:is_win && s:git_version_requirement(2, 3)
|
|
let s:git_terminal_prompt = exists('$GIT_TERMINAL_PROMPT') ? $GIT_TERMINAL_PROMPT : ''
|
|
let $GIT_TERMINAL_PROMPT = 0
|
|
for plug in values(todo)
|
|
let plug.uri = substitute(plug.uri,
|
|
\ '^https://git::@github\.com', 'https://github.com', '')
|
|
endfor
|
|
endif
|
|
|
|
if !isdirectory(g:plug_home)
|
|
try
|
|
call mkdir(g:plug_home, 'p')
|
|
catch
|
|
return s:err(printf('Invalid plug directory: %s. '.
|
|
\ 'Try to call plug#begin with a valid directory', g:plug_home))
|
|
endtry
|
|
endif
|
|
|
|
if has('nvim') && !exists('*jobwait') && threads > 1
|
|
call s:warn('echom', '[vim-plug] Update Neovim for parallel installer')
|
|
endif
|
|
|
|
let use_job = s:nvim || s:vim8
|
|
let python = (has('python') || has('python3')) && !use_job
|
|
let ruby = has('ruby') && !use_job && (v:version >= 703 || v:version == 702 && has('patch374')) && !(s:is_win && has('gui_running')) && threads > 1 && s:check_ruby()
|
|
|
|
let s:update = {
|
|
\ 'start': reltime(),
|
|
\ 'all': todo,
|
|
\ 'todo': copy(todo),
|
|
\ 'errors': [],
|
|
\ 'pull': a:pull,
|
|
\ 'force': a:force,
|
|
\ 'new': {},
|
|
\ 'threads': (python || ruby || use_job) ? min([len(todo), threads]) : 1,
|
|
\ 'bar': '',
|
|
\ 'fin': 0
|
|
\ }
|
|
|
|
call s:prepare(1)
|
|
call append(0, ['', ''])
|
|
normal! 2G
|
|
silent! redraw
|
|
|
|
" Set remote name, overriding a possible user git config's clone.defaultRemoteName
|
|
let s:clone_opt = ['--origin', 'origin']
|
|
if get(g:, 'plug_shallow', 1)
|
|
call extend(s:clone_opt, ['--depth', '1'])
|
|
if s:git_version_requirement(1, 7, 10)
|
|
call add(s:clone_opt, '--no-single-branch')
|
|
endif
|
|
endif
|
|
|
|
if has('win32unix') || has('wsl')
|
|
call extend(s:clone_opt, ['-c', 'core.eol=lf', '-c', 'core.autocrlf=input'])
|
|
endif
|
|
|
|
let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : ''
|
|
|
|
" Python version requirement (>= 2.7)
|
|
if python && !has('python3') && !ruby && !use_job && s:update.threads > 1
|
|
redir => pyv
|
|
silent python import platform; print platform.python_version()
|
|
redir END
|
|
let python = s:version_requirement(
|
|
\ map(split(split(pyv)[0], '\.'), 'str2nr(v:val)'), [2, 6])
|
|
endif
|
|
|
|
if (python || ruby) && s:update.threads > 1
|
|
try
|
|
let imd = &imd
|
|
if s:mac_gui
|
|
set noimd
|
|
endif
|
|
if ruby
|
|
call s:update_ruby()
|
|
else
|
|
call s:update_python()
|
|
endif
|
|
catch
|
|
let lines = getline(4, '$')
|
|
let printed = {}
|
|
silent! 4,$d _
|
|
for line in lines
|
|
let name = s:extract_name(line, '.', '')
|
|
if empty(name) || !has_key(printed, name)
|
|
call append('$', line)
|
|
if !empty(name)
|
|
let printed[name] = 1
|
|
if line[0] == 'x' && index(s:update.errors, name) < 0
|
|
call add(s:update.errors, name)
|
|
end
|
|
endif
|
|
endif
|
|
endfor
|
|
finally
|
|
let &imd = imd
|
|
call s:update_finish()
|
|
endtry
|
|
else
|
|
call s:update_vim()
|
|
while use_job && sync
|
|
sleep 100m
|
|
if s:update.fin
|
|
break
|
|
endif
|
|
endwhile
|
|
endif
|
|
endfunction
|
|
|
|
function! s:log4(name, msg)
|
|
call setline(4, printf('- %s (%s)', a:msg, a:name))
|
|
redraw
|
|
endfunction
|
|
|
|
function! s:update_finish()
|
|
if exists('s:git_terminal_prompt')
|
|
let $GIT_TERMINAL_PROMPT = s:git_terminal_prompt
|
|
endif
|
|
if s:switch_in()
|
|
call append(3, '- Updating ...') | 4
|
|
for [name, spec] in items(filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && (s:update.force || s:update.pull || has_key(s:update.new, v:key))'))
|
|
let [pos, _] = s:logpos(name)
|
|
if !pos
|
|
continue
|
|
endif
|
|
if has_key(spec, 'commit')
|
|
call s:log4(name, 'Checking out '.spec.commit)
|
|
let out = s:checkout(spec)
|
|
elseif has_key(spec, 'tag')
|
|
let tag = spec.tag
|
|
if tag =~ '\*'
|
|
let tags = s:lines(s:system('git tag --list '.plug#shellescape(tag).' --sort -version:refname 2>&1', spec.dir))
|
|
if !v:shell_error && !empty(tags)
|
|
let tag = tags[0]
|
|
call s:log4(name, printf('Latest tag for %s -> %s', spec.tag, tag))
|
|
call append(3, '')
|
|
endif
|
|
endif
|
|
call s:log4(name, 'Checking out '.tag)
|
|
let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir)
|
|
else
|
|
let branch = s:git_origin_branch(spec)
|
|
call s:log4(name, 'Merging origin/'.s:esc(branch))
|
|
let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1'
|
|
\. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir)
|
|
endif
|
|
if !v:shell_error && filereadable(spec.dir.'/.gitmodules') &&
|
|
\ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir))
|
|
call s:log4(name, 'Updating submodules. This may take a while.')
|
|
let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir)
|
|
endif
|
|
let msg = s:format_message(v:shell_error ? 'x': '-', name, out)
|
|
if v:shell_error
|
|
call add(s:update.errors, name)
|
|
call s:regress_bar()
|
|
silent execute pos 'd _'
|
|
call append(4, msg) | 4
|
|
elseif !empty(out)
|
|
call setline(pos, msg[0])
|
|
endif
|
|
redraw
|
|
endfor
|
|
silent 4 d _
|
|
try
|
|
call s:do(s:update.pull, s:update.force, filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && has_key(v:val, "do")'))
|
|
catch
|
|
call s:warn('echom', v:exception)
|
|
call s:warn('echo', '')
|
|
return
|
|
endtry
|
|
call s:finish(s:update.pull)
|
|
call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(s:update.start)))[0] . ' sec.')
|
|
call s:switch_out('normal! gg')
|
|
endif
|
|
endfunction
|
|
|
|
function! s:job_abort()
|
|
if (!s:nvim && !s:vim8) || !exists('s:jobs')
|
|
return
|
|
endif
|
|
|
|
for [name, j] in items(s:jobs)
|
|
if s:nvim
|
|
silent! call jobstop(j.jobid)
|
|
elseif s:vim8
|
|
silent! call job_stop(j.jobid)
|
|
endif
|
|
if j.new
|
|
call s:rm_rf(g:plugs[name].dir)
|
|
endif
|
|
endfor
|
|
let s:jobs = {}
|
|
endfunction
|
|
|
|
function! s:last_non_empty_line(lines)
|
|
let len = len(a:lines)
|
|
for idx in range(len)
|
|
let line = a:lines[len-idx-1]
|
|
if !empty(line)
|
|
return line
|
|
endif
|
|
endfor
|
|
return ''
|
|
endfunction
|
|
|
|
function! s:job_out_cb(self, data) abort
|
|
let self = a:self
|
|
let data = remove(self.lines, -1) . a:data
|
|
let lines = map(split(data, "\n", 1), 'split(v:val, "\r", 1)[-1]')
|
|
call extend(self.lines, lines)
|
|
" To reduce the number of buffer updates
|
|
let self.tick = get(self, 'tick', -1) + 1
|
|
if !self.running || self.tick % len(s:jobs) == 0
|
|
let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-')
|
|
let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines)
|
|
call s:log(bullet, self.name, result)
|
|
endif
|
|
endfunction
|
|
|
|
function! s:job_exit_cb(self, data) abort
|
|
let a:self.running = 0
|
|
let a:self.error = a:data != 0
|
|
call s:reap(a:self.name)
|
|
call s:tick()
|
|
endfunction
|
|
|
|
function! s:job_cb(fn, job, ch, data)
|
|
if !s:plug_window_exists() " plug window closed
|
|
return s:job_abort()
|
|
endif
|
|
call call(a:fn, [a:job, a:data])
|
|
endfunction
|
|
|
|
function! s:nvim_cb(job_id, data, event) dict abort
|
|
return (a:event == 'stdout' || a:event == 'stderr') ?
|
|
\ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) :
|
|
\ s:job_cb('s:job_exit_cb', self, 0, a:data)
|
|
endfunction
|
|
|
|
function! s:spawn(name, cmd, opts)
|
|
let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''],
|
|
\ 'new': get(a:opts, 'new', 0) }
|
|
let s:jobs[a:name] = job
|
|
|
|
if s:nvim
|
|
if has_key(a:opts, 'dir')
|
|
let job.cwd = a:opts.dir
|
|
endif
|
|
let argv = a:cmd
|
|
call extend(job, {
|
|
\ 'on_stdout': function('s:nvim_cb'),
|
|
\ 'on_stderr': function('s:nvim_cb'),
|
|
\ 'on_exit': function('s:nvim_cb'),
|
|
\ })
|
|
let jid = s:plug_call('jobstart', argv, job)
|
|
if jid > 0
|
|
let job.jobid = jid
|
|
else
|
|
let job.running = 0
|
|
let job.error = 1
|
|
let job.lines = [jid < 0 ? argv[0].' is not executable' :
|
|
\ 'Invalid arguments (or job table is full)']
|
|
endif
|
|
elseif s:vim8
|
|
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"script": 0})'))
|
|
if has_key(a:opts, 'dir')
|
|
let cmd = s:with_cd(cmd, a:opts.dir, 0)
|
|
endif
|
|
let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd]
|
|
let jid = job_start(s:is_win ? join(argv, ' ') : argv, {
|
|
\ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]),
|
|
\ 'err_cb': function('s:job_cb', ['s:job_out_cb', job]),
|
|
\ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]),
|
|
\ 'err_mode': 'raw',
|
|
\ 'out_mode': 'raw'
|
|
\})
|
|
if job_status(jid) == 'run'
|
|
let job.jobid = jid
|
|
else
|
|
let job.running = 0
|
|
let job.error = 1
|
|
let job.lines = ['Failed to start job']
|
|
endif
|
|
else
|
|
let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [a:cmd, a:opts.dir] : [a:cmd]))
|
|
let job.error = v:shell_error != 0
|
|
let job.running = 0
|
|
endif
|
|
endfunction
|
|
|
|
function! s:reap(name)
|
|
let job = s:jobs[a:name]
|
|
if job.error
|
|
call add(s:update.errors, a:name)
|
|
elseif get(job, 'new', 0)
|
|
let s:update.new[a:name] = 1
|
|
endif
|
|
let s:update.bar .= job.error ? 'x' : '='
|
|
|
|
let bullet = job.error ? 'x' : '-'
|
|
let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines)
|
|
call s:log(bullet, a:name, empty(result) ? 'OK' : result)
|
|
call s:bar()
|
|
|
|
call remove(s:jobs, a:name)
|
|
endfunction
|
|
|
|
function! s:bar()
|
|
if s:switch_in()
|
|
let total = len(s:update.all)
|
|
call setline(1, (s:update.pull ? 'Updating' : 'Installing').
|
|
\ ' plugins ('.len(s:update.bar).'/'.total.')')
|
|
call s:progress_bar(2, s:update.bar, total)
|
|
call s:switch_out()
|
|
endif
|
|
endfunction
|
|
|
|
function! s:logpos(name)
|
|
let max = line('$')
|
|
for i in range(4, max > 4 ? max : 4)
|
|
if getline(i) =~# '^[-+x*] '.a:name.':'
|
|
for j in range(i + 1, max > 5 ? max : 5)
|
|
if getline(j) !~ '^ '
|
|
return [i, j - 1]
|
|
endif
|
|
endfor
|
|
return [i, i]
|
|
endif
|
|
endfor
|
|
return [0, 0]
|
|
endfunction
|
|
|
|
function! s:log(bullet, name, lines)
|
|
if s:switch_in()
|
|
let [b, e] = s:logpos(a:name)
|
|
if b > 0
|
|
silent execute printf('%d,%d d _', b, e)
|
|
if b > winheight('.')
|
|
let b = 4
|
|
endif
|
|
else
|
|
let b = 4
|
|
endif
|
|
" FIXME For some reason, nomodifiable is set after :d in vim8
|
|
setlocal modifiable
|
|
call append(b - 1, s:format_message(a:bullet, a:name, a:lines))
|
|
call s:switch_out()
|
|
endif
|
|
endfunction
|
|
|
|
function! s:update_vim()
|
|
let s:jobs = {}
|
|
|
|
call s:bar()
|
|
call s:tick()
|
|
endfunction
|
|
|
|
function! s:tick()
|
|
let pull = s:update.pull
|
|
let prog = s:progress_opt(s:nvim || s:vim8)
|
|
while 1 " Without TCO, Vim stack is bound to explode
|
|
if empty(s:update.todo)
|
|
if empty(s:jobs) && !s:update.fin
|
|
call s:update_finish()
|
|
let s:update.fin = 1
|
|
endif
|
|
return
|
|
endif
|
|
|
|
let name = keys(s:update.todo)[0]
|
|
let spec = remove(s:update.todo, name)
|
|
let new = empty(globpath(spec.dir, '.git', 1))
|
|
|
|
call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
|
|
redraw
|
|
|
|
let has_tag = has_key(spec, 'tag')
|
|
if !new
|
|
let [error, _] = s:git_validate(spec, 0)
|
|
if empty(error)
|
|
if pull
|
|
let cmd = s:git_version_requirement(2) ? ['git', '-c', 'credential.helper=', 'fetch'] : ['git', 'fetch']
|
|
if has_tag && !empty(globpath(spec.dir, '.git/shallow'))
|
|
call extend(cmd, ['--depth', '99999999'])
|
|
endif
|
|
if !empty(prog)
|
|
call add(cmd, prog)
|
|
endif
|
|
call s:spawn(name, cmd, { 'dir': spec.dir })
|
|
else
|
|
let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 }
|
|
endif
|
|
else
|
|
let s:jobs[name] = { 'running': 0, 'lines': s:lines(error), 'error': 1 }
|
|
endif
|
|
else
|
|
let cmd = ['git', 'clone']
|
|
if !has_tag
|
|
call extend(cmd, s:clone_opt)
|
|
endif
|
|
if !empty(prog)
|
|
call add(cmd, prog)
|
|
endif
|
|
call s:spawn(name, extend(cmd, [spec.uri, s:trim(spec.dir)]), { 'new': 1 })
|
|
endif
|
|
|
|
if !s:jobs[name].running
|
|
call s:reap(name)
|
|
endif
|
|
if len(s:jobs) >= s:update.threads
|
|
break
|
|
endif
|
|
endwhile
|
|
endfunction
|
|
|
|
function! s:update_python()
|
|
let py_exe = has('python') ? 'python' : 'python3'
|
|
execute py_exe "<< EOF"
|
|
import datetime
|
|
import functools
|
|
import os
|
|
try:
|
|
import queue
|
|
except ImportError:
|
|
import Queue as queue
|
|
import random
|
|
import re
|
|
import shutil
|
|
import signal
|
|
import subprocess
|
|
import tempfile
|
|
import threading as thr
|
|
import time
|
|
import traceback
|
|
import vim
|
|
|
|
G_NVIM = vim.eval("has('nvim')") == '1'
|
|
G_PULL = vim.eval('s:update.pull') == '1'
|
|
G_RETRIES = int(vim.eval('get(g:, "plug_retries", 2)')) + 1
|
|
G_TIMEOUT = int(vim.eval('get(g:, "plug_timeout", 60)'))
|
|
G_CLONE_OPT = ' '.join(vim.eval('s:clone_opt'))
|
|
G_PROGRESS = vim.eval('s:progress_opt(1)')
|
|
G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads'))
|
|
G_STOP = thr.Event()
|
|
G_IS_WIN = vim.eval('s:is_win') == '1'
|
|
|
|
class PlugError(Exception):
|
|
def __init__(self, msg):
|
|
self.msg = msg
|
|
class CmdTimedOut(PlugError):
|
|
pass
|
|
class CmdFailed(PlugError):
|
|
pass
|
|
class InvalidURI(PlugError):
|
|
pass
|
|
class Action(object):
|
|
INSTALL, UPDATE, ERROR, DONE = ['+', '*', 'x', '-']
|
|
|
|
class Buffer(object):
|
|
def __init__(self, lock, num_plugs, is_pull):
|
|
self.bar = ''
|
|
self.event = 'Updating' if is_pull else 'Installing'
|
|
self.lock = lock
|
|
self.maxy = int(vim.eval('winheight(".")'))
|
|
self.num_plugs = num_plugs
|
|
|
|
def __where(self, name):
|
|
""" Find first line with name in current buffer. Return line num. """
|
|
found, lnum = False, 0
|
|
matcher = re.compile('^[-+x*] {0}:'.format(name))
|
|
for line in vim.current.buffer:
|
|
if matcher.search(line) is not None:
|
|
found = True
|
|
break
|
|
lnum += 1
|
|
|
|
if not found:
|
|
lnum = -1
|
|
return lnum
|
|
|
|
def header(self):
|
|
curbuf = vim.current.buffer
|
|
curbuf[0] = self.event + ' plugins ({0}/{1})'.format(len(self.bar), self.num_plugs)
|
|
|
|
num_spaces = self.num_plugs - len(self.bar)
|
|
curbuf[1] = '[{0}{1}]'.format(self.bar, num_spaces * ' ')
|
|
|
|
with self.lock:
|
|
vim.command('normal! 2G')
|
|
vim.command('redraw')
|
|
|
|
def write(self, action, name, lines):
|
|
first, rest = lines[0], lines[1:]
|
|
msg = ['{0} {1}{2}{3}'.format(action, name, ': ' if first else '', first)]
|
|
msg.extend([' ' + line for line in rest])
|
|
|
|
try:
|
|
if action == Action.ERROR:
|
|
self.bar += 'x'
|
|
vim.command("call add(s:update.errors, '{0}')".format(name))
|
|
elif action == Action.DONE:
|
|
self.bar += '='
|
|
|
|
curbuf = vim.current.buffer
|
|
lnum = self.__where(name)
|
|
if lnum != -1: # Found matching line num
|
|
del curbuf[lnum]
|
|
if lnum > self.maxy and action in set([Action.INSTALL, Action.UPDATE]):
|
|
lnum = 3
|
|
else:
|
|
lnum = 3
|
|
curbuf.append(msg, lnum)
|
|
|
|
self.header()
|
|
except vim.error:
|
|
pass
|
|
|
|
class Command(object):
|
|
CD = 'cd /d' if G_IS_WIN else 'cd'
|
|
|
|
def __init__(self, cmd, cmd_dir=None, timeout=60, cb=None, clean=None):
|
|
self.cmd = cmd
|
|
if cmd_dir:
|
|
self.cmd = '{0} {1} && {2}'.format(Command.CD, cmd_dir, self.cmd)
|
|
self.timeout = timeout
|
|
self.callback = cb if cb else (lambda msg: None)
|
|
self.clean = clean if clean else (lambda: None)
|
|
self.proc = None
|
|
|
|
@property
|
|
def alive(self):
|
|
""" Returns true only if command still running. """
|
|
return self.proc and self.proc.poll() is None
|
|
|
|
def execute(self, ntries=3):
|
|
""" Execute the command with ntries if CmdTimedOut.
|
|
Returns the output of the command if no Exception.
|
|
"""
|
|
attempt, finished, limit = 0, False, self.timeout
|
|
|
|
while not finished:
|
|
try:
|
|
attempt += 1
|
|
result = self.try_command()
|
|
finished = True
|
|
return result
|
|
except CmdTimedOut:
|
|
if attempt != ntries:
|
|
self.notify_retry()
|
|
self.timeout += limit
|
|
else:
|
|
raise
|
|
|
|
def notify_retry(self):
|
|
""" Retry required for command, notify user. """
|
|
for count in range(3, 0, -1):
|
|
if G_STOP.is_set():
|
|
raise KeyboardInterrupt
|
|
msg = 'Timeout. Will retry in {0} second{1} ...'.format(
|
|
count, 's' if count != 1 else '')
|
|
self.callback([msg])
|
|
time.sleep(1)
|
|
self.callback(['Retrying ...'])
|
|
|
|
def try_command(self):
|
|
""" Execute a cmd & poll for callback. Returns list of output.
|
|
Raises CmdFailed -> return code for Popen isn't 0
|
|
Raises CmdTimedOut -> command exceeded timeout without new output
|
|
"""
|
|
first_line = True
|
|
|
|
try:
|
|
tfile = tempfile.NamedTemporaryFile(mode='w+b')
|
|
preexec_fn = not G_IS_WIN and os.setsid or None
|
|
self.proc = subprocess.Popen(self.cmd, stdout=tfile,
|
|
stderr=subprocess.STDOUT,
|
|
stdin=subprocess.PIPE, shell=True,
|
|
preexec_fn=preexec_fn)
|
|
thrd = thr.Thread(target=(lambda proc: proc.wait()), args=(self.proc,))
|
|
thrd.start()
|
|
|
|
thread_not_started = True
|
|
while thread_not_started:
|
|
try:
|
|
thrd.join(0.1)
|
|
thread_not_started = False
|
|
except RuntimeError:
|
|
pass
|
|
|
|
while self.alive:
|
|
if G_STOP.is_set():
|
|
raise KeyboardInterrupt
|
|
|
|
if first_line or random.random() < G_LOG_PROB:
|
|
first_line = False
|
|
line = '' if G_IS_WIN else nonblock_read(tfile.name)
|
|
if line:
|
|
self.callback([line])
|
|
|
|
time_diff = time.time() - os.path.getmtime(tfile.name)
|
|
if time_diff > self.timeout:
|
|
raise CmdTimedOut(['Timeout!'])
|
|
|
|
thrd.join(0.5)
|
|
|
|
tfile.seek(0)
|
|
result = [line.decode('utf-8', 'replace').rstrip() for line in tfile]
|
|
|
|
if self.proc.returncode != 0:
|
|
raise CmdFailed([''] + result)
|
|
|
|
return result
|
|
except:
|
|
self.terminate()
|
|
raise
|
|
|
|
def terminate(self):
|
|
""" Terminate process and cleanup. """
|
|
if self.alive:
|
|
if G_IS_WIN:
|
|
os.kill(self.proc.pid, signal.SIGINT)
|
|
else:
|
|
os.killpg(self.proc.pid, signal.SIGTERM)
|
|
self.clean()
|
|
|
|
class Plugin(object):
|
|
def __init__(self, name, args, buf_q, lock):
|
|
self.name = name
|
|
self.args = args
|
|
self.buf_q = buf_q
|
|
self.lock = lock
|
|
self.tag = args.get('tag', 0)
|
|
|
|
def manage(self):
|
|
try:
|
|
if os.path.exists(self.args['dir']):
|
|
self.update()
|
|
else:
|
|
self.install()
|
|
with self.lock:
|
|
thread_vim_command("let s:update.new['{0}'] = 1".format(self.name))
|
|
except PlugError as exc:
|
|
self.write(Action.ERROR, self.name, exc.msg)
|
|
except KeyboardInterrupt:
|
|
G_STOP.set()
|
|
self.write(Action.ERROR, self.name, ['Interrupted!'])
|
|
except:
|
|
# Any exception except those above print stack trace
|
|
msg = 'Trace:\n{0}'.format(traceback.format_exc().rstrip())
|
|
self.write(Action.ERROR, self.name, msg.split('\n'))
|
|
raise
|
|
|
|
def install(self):
|
|
target = self.args['dir']
|
|
if target[-1] == '\\':
|
|
target = target[0:-1]
|
|
|
|
def clean(target):
|
|
def _clean():
|
|
try:
|
|
shutil.rmtree(target)
|
|
except OSError:
|
|
pass
|
|
return _clean
|
|
|
|
self.write(Action.INSTALL, self.name, ['Installing ...'])
|
|
callback = functools.partial(self.write, Action.INSTALL, self.name)
|
|
cmd = 'git clone {0} {1} {2} {3} 2>&1'.format(
|
|
'' if self.tag else G_CLONE_OPT, G_PROGRESS, self.args['uri'],
|
|
esc(target))
|
|
com = Command(cmd, None, G_TIMEOUT, callback, clean(target))
|
|
result = com.execute(G_RETRIES)
|
|
self.write(Action.DONE, self.name, result[-1:])
|
|
|
|
def repo_uri(self):
|
|
cmd = 'git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url'
|
|
command = Command(cmd, self.args['dir'], G_TIMEOUT,)
|
|
result = command.execute(G_RETRIES)
|
|
return result[-1]
|
|
|
|
def update(self):
|
|
actual_uri = self.repo_uri()
|
|
expect_uri = self.args['uri']
|
|
regex = re.compile(r'^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$')
|
|
ma = regex.match(actual_uri)
|
|
mb = regex.match(expect_uri)
|
|
if ma is None or mb is None or ma.groups() != mb.groups():
|
|
msg = ['',
|
|
'Invalid URI: {0}'.format(actual_uri),
|
|
'Expected {0}'.format(expect_uri),
|
|
'PlugClean required.']
|
|
raise InvalidURI(msg)
|
|
|
|
if G_PULL:
|
|
self.write(Action.UPDATE, self.name, ['Updating ...'])
|
|
callback = functools.partial(self.write, Action.UPDATE, self.name)
|
|
fetch_opt = '--depth 99999999' if self.tag and os.path.isfile(os.path.join(self.args['dir'], '.git/shallow')) else ''
|
|
cmd = 'git fetch {0} {1} 2>&1'.format(fetch_opt, G_PROGRESS)
|
|
com = Command(cmd, self.args['dir'], G_TIMEOUT, callback)
|
|
result = com.execute(G_RETRIES)
|
|
self.write(Action.DONE, self.name, result[-1:])
|
|
else:
|
|
self.write(Action.DONE, self.name, ['Already installed'])
|
|
|
|
def write(self, action, name, msg):
|
|
self.buf_q.put((action, name, msg))
|
|
|
|
class PlugThread(thr.Thread):
|
|
def __init__(self, tname, args):
|
|
super(PlugThread, self).__init__()
|
|
self.tname = tname
|
|
self.args = args
|
|
|
|
def run(self):
|
|
thr.current_thread().name = self.tname
|
|
buf_q, work_q, lock = self.args
|
|
|
|
try:
|
|
while not G_STOP.is_set():
|
|
name, args = work_q.get_nowait()
|
|
plug = Plugin(name, args, buf_q, lock)
|
|
plug.manage()
|
|
work_q.task_done()
|
|
except queue.Empty:
|
|
pass
|
|
|
|
class RefreshThread(thr.Thread):
|
|
def __init__(self, lock):
|
|
super(RefreshThread, self).__init__()
|
|
self.lock = lock
|
|
self.running = True
|
|
|
|
def run(self):
|
|
while self.running:
|
|
with self.lock:
|
|
thread_vim_command('noautocmd normal! a')
|
|
time.sleep(0.33)
|
|
|
|
def stop(self):
|
|
self.running = False
|
|
|
|
if G_NVIM:
|
|
def thread_vim_command(cmd):
|
|
vim.session.threadsafe_call(lambda: vim.command(cmd))
|
|
else:
|
|
def thread_vim_command(cmd):
|
|
vim.command(cmd)
|
|
|
|
def esc(name):
|
|
return '"' + name.replace('"', '\"') + '"'
|
|
|
|
def nonblock_read(fname):
|
|
""" Read a file with nonblock flag. Return the last line. """
|
|
fread = os.open(fname, os.O_RDONLY | os.O_NONBLOCK)
|
|
buf = os.read(fread, 100000).decode('utf-8', 'replace')
|
|
os.close(fread)
|
|
|
|
line = buf.rstrip('\r\n')
|
|
left = max(line.rfind('\r'), line.rfind('\n'))
|
|
if left != -1:
|
|
left += 1
|
|
line = line[left:]
|
|
|
|
return line
|
|
|
|
def main():
|
|
thr.current_thread().name = 'main'
|
|
nthreads = int(vim.eval('s:update.threads'))
|
|
plugs = vim.eval('s:update.todo')
|
|
mac_gui = vim.eval('s:mac_gui') == '1'
|
|
|
|
lock = thr.Lock()
|
|
buf = Buffer(lock, len(plugs), G_PULL)
|
|
buf_q, work_q = queue.Queue(), queue.Queue()
|
|
for work in plugs.items():
|
|
work_q.put(work)
|
|
|
|
start_cnt = thr.active_count()
|
|
for num in range(nthreads):
|
|
tname = 'PlugT-{0:02}'.format(num)
|
|
thread = PlugThread(tname, (buf_q, work_q, lock))
|
|
thread.start()
|
|
if mac_gui:
|
|
rthread = RefreshThread(lock)
|
|
rthread.start()
|
|
|
|
while not buf_q.empty() or thr.active_count() != start_cnt:
|
|
try:
|
|
action, name, msg = buf_q.get(True, 0.25)
|
|
buf.write(action, name, ['OK'] if not msg else msg)
|
|
buf_q.task_done()
|
|
except queue.Empty:
|
|
pass
|
|
except KeyboardInterrupt:
|
|
G_STOP.set()
|
|
|
|
if mac_gui:
|
|
rthread.stop()
|
|
rthread.join()
|
|
|
|
main()
|
|
EOF
|
|
endfunction
|
|
|
|
function! s:update_ruby()
|
|
ruby << EOF
|
|
module PlugStream
|
|
SEP = ["\r", "\n", nil]
|
|
def get_line
|
|
buffer = ''
|
|
loop do
|
|
char = readchar rescue return
|
|
if SEP.include? char.chr
|
|
buffer << $/
|
|
break
|
|
else
|
|
buffer << char
|
|
end
|
|
end
|
|
buffer
|
|
end
|
|
end unless defined?(PlugStream)
|
|
|
|
def esc arg
|
|
%["#{arg.gsub('"', '\"')}"]
|
|
end
|
|
|
|
def killall pid
|
|
pids = [pid]
|
|
if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM
|
|
pids.each { |pid| Process.kill 'INT', pid.to_i rescue nil }
|
|
else
|
|
unless `which pgrep 2> /dev/null`.empty?
|
|
children = pids
|
|
until children.empty?
|
|
children = children.map { |pid|
|
|
`pgrep -P #{pid}`.lines.map { |l| l.chomp }
|
|
}.flatten
|
|
pids += children
|
|
end
|
|
end
|
|
pids.each { |pid| Process.kill 'TERM', pid.to_i rescue nil }
|
|
end
|
|
end
|
|
|
|
def compare_git_uri a, b
|
|
regex = %r{^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$}
|
|
regex.match(a).to_a.drop(1) == regex.match(b).to_a.drop(1)
|
|
end
|
|
|
|
require 'thread'
|
|
require 'fileutils'
|
|
require 'timeout'
|
|
running = true
|
|
iswin = VIM::evaluate('s:is_win').to_i == 1
|
|
pull = VIM::evaluate('s:update.pull').to_i == 1
|
|
base = VIM::evaluate('g:plug_home')
|
|
all = VIM::evaluate('s:update.todo')
|
|
limit = VIM::evaluate('get(g:, "plug_timeout", 60)')
|
|
tries = VIM::evaluate('get(g:, "plug_retries", 2)') + 1
|
|
nthr = VIM::evaluate('s:update.threads').to_i
|
|
maxy = VIM::evaluate('winheight(".")').to_i
|
|
vim7 = VIM::evaluate('v:version').to_i <= 703 && RUBY_PLATFORM =~ /darwin/
|
|
cd = iswin ? 'cd /d' : 'cd'
|
|
tot = VIM::evaluate('len(s:update.todo)') || 0
|
|
bar = ''
|
|
skip = 'Already installed'
|
|
mtx = Mutex.new
|
|
take1 = proc { mtx.synchronize { running && all.shift } }
|
|
logh = proc {
|
|
cnt = bar.length
|
|
$curbuf[1] = "#{pull ? 'Updating' : 'Installing'} plugins (#{cnt}/#{tot})"
|
|
$curbuf[2] = '[' + bar.ljust(tot) + ']'
|
|
VIM::command('normal! 2G')
|
|
VIM::command('redraw')
|
|
}
|
|
where = proc { |name| (1..($curbuf.length)).find { |l| $curbuf[l] =~ /^[-+x*] #{name}:/ } }
|
|
log = proc { |name, result, type|
|
|
mtx.synchronize do
|
|
ing = ![true, false].include?(type)
|
|
bar += type ? '=' : 'x' unless ing
|
|
b = case type
|
|
when :install then '+' when :update then '*'
|
|
when true, nil then '-' else
|
|
VIM::command("call add(s:update.errors, '#{name}')")
|
|
'x'
|
|
end
|
|
result =
|
|
if type || type.nil?
|
|
["#{b} #{name}: #{result.lines.to_a.last || 'OK'}"]
|
|
elsif result =~ /^Interrupted|^Timeout/
|
|
["#{b} #{name}: #{result}"]
|
|
else
|
|
["#{b} #{name}"] + result.lines.map { |l| " " << l }
|
|
end
|
|
if lnum = where.call(name)
|
|
$curbuf.delete lnum
|
|
lnum = 4 if ing && lnum > maxy
|
|
end
|
|
result.each_with_index do |line, offset|
|
|
$curbuf.append((lnum || 4) - 1 + offset, line.gsub(/\e\[./, '').chomp)
|
|
end
|
|
logh.call
|
|
end
|
|
}
|
|
bt = proc { |cmd, name, type, cleanup|
|
|
tried = timeout = 0
|
|
begin
|
|
tried += 1
|
|
timeout += limit
|
|
fd = nil
|
|
data = ''
|
|
if iswin
|
|
Timeout::timeout(timeout) do
|
|
tmp = VIM::evaluate('tempname()')
|
|
system("(#{cmd}) > #{tmp}")
|
|
data = File.read(tmp).chomp
|
|
File.unlink tmp rescue nil
|
|
end
|
|
else
|
|
fd = IO.popen(cmd).extend(PlugStream)
|
|
first_line = true
|
|
log_prob = 1.0 / nthr
|
|
while line = Timeout::timeout(timeout) { fd.get_line }
|
|
data << line
|
|
log.call name, line.chomp, type if name && (first_line || rand < log_prob)
|
|
first_line = false
|
|
end
|
|
fd.close
|
|
end
|
|
[$? == 0, data.chomp]
|
|
rescue Timeout::Error, Interrupt => e
|
|
if fd && !fd.closed?
|
|
killall fd.pid
|
|
fd.close
|
|
end
|
|
cleanup.call if cleanup
|
|
if e.is_a?(Timeout::Error) && tried < tries
|
|
3.downto(1) do |countdown|
|
|
s = countdown > 1 ? 's' : ''
|
|
log.call name, "Timeout. Will retry in #{countdown} second#{s} ...", type
|
|
sleep 1
|
|
end
|
|
log.call name, 'Retrying ...', type
|
|
retry
|
|
end
|
|
[false, e.is_a?(Interrupt) ? "Interrupted!" : "Timeout!"]
|
|
end
|
|
}
|
|
main = Thread.current
|
|
threads = []
|
|
watcher = Thread.new {
|
|
if vim7
|
|
while VIM::evaluate('getchar(1)')
|
|
sleep 0.1
|
|
end
|
|
else
|
|
require 'io/console' # >= Ruby 1.9
|
|
nil until IO.console.getch == 3.chr
|
|
end
|
|
mtx.synchronize do
|
|
running = false
|
|
threads.each { |t| t.raise Interrupt } unless vim7
|
|
end
|
|
threads.each { |t| t.join rescue nil }
|
|
main.kill
|
|
}
|
|
refresh = Thread.new {
|
|
while true
|
|
mtx.synchronize do
|
|
break unless running
|
|
VIM::command('noautocmd normal! a')
|
|
end
|
|
sleep 0.2
|
|
end
|
|
} if VIM::evaluate('s:mac_gui') == 1
|
|
|
|
clone_opt = VIM::evaluate('s:clone_opt').join(' ')
|
|
progress = VIM::evaluate('s:progress_opt(1)')
|
|
nthr.times do
|
|
mtx.synchronize do
|
|
threads << Thread.new {
|
|
while pair = take1.call
|
|
name = pair.first
|
|
dir, uri, tag = pair.last.values_at *%w[dir uri tag]
|
|
exists = File.directory? dir
|
|
ok, result =
|
|
if exists
|
|
chdir = "#{cd} #{iswin ? dir : esc(dir)}"
|
|
ret, data = bt.call "#{chdir} && git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url", nil, nil, nil
|
|
current_uri = data.lines.to_a.last
|
|
if !ret
|
|
if data =~ /^Interrupted|^Timeout/
|
|
[false, data]
|
|
else
|
|
[false, [data.chomp, "PlugClean required."].join($/)]
|
|
end
|
|
elsif !compare_git_uri(current_uri, uri)
|
|
[false, ["Invalid URI: #{current_uri}",
|
|
"Expected: #{uri}",
|
|
"PlugClean required."].join($/)]
|
|
else
|
|
if pull
|
|
log.call name, 'Updating ...', :update
|
|
fetch_opt = (tag && File.exist?(File.join(dir, '.git/shallow'))) ? '--depth 99999999' : ''
|
|
bt.call "#{chdir} && git fetch #{fetch_opt} #{progress} 2>&1", name, :update, nil
|
|
else
|
|
[true, skip]
|
|
end
|
|
end
|
|
else
|
|
d = esc dir.sub(%r{[\\/]+$}, '')
|
|
log.call name, 'Installing ...', :install
|
|
bt.call "git clone #{clone_opt unless tag} #{progress} #{uri} #{d} 2>&1", name, :install, proc {
|
|
FileUtils.rm_rf dir
|
|
}
|
|
end
|
|
mtx.synchronize { VIM::command("let s:update.new['#{name}'] = 1") } if !exists && ok
|
|
log.call name, result, ok
|
|
end
|
|
} if running
|
|
end
|
|
end
|
|
threads.each { |t| t.join rescue nil }
|
|
logh.call
|
|
refresh.kill if refresh
|
|
watcher.kill
|
|
EOF
|
|
endfunction
|
|
|
|
function! s:shellesc_cmd(arg, script)
|
|
let escaped = substitute('"'.a:arg.'"', '[&|<>()@^!"]', '^&', 'g')
|
|
return substitute(escaped, '%', (a:script ? '%' : '^') . '&', 'g')
|
|
endfunction
|
|
|
|
function! s:shellesc_ps1(arg)
|
|
return "'".substitute(escape(a:arg, '\"'), "'", "''", 'g')."'"
|
|
endfunction
|
|
|
|
function! s:shellesc_sh(arg)
|
|
return "'".substitute(a:arg, "'", "'\\\\''", 'g')."'"
|
|
endfunction
|
|
|
|
" Escape the shell argument based on the shell.
|
|
" Vim and Neovim's shellescape() are insufficient.
|
|
" 1. shellslash determines whether to use single/double quotes.
|
|
" Double-quote escaping is fragile for cmd.exe.
|
|
" 2. It does not work for powershell.
|
|
" 3. It does not work for *sh shells if the command is executed
|
|
" via cmd.exe (ie. cmd.exe /c sh -c command command_args)
|
|
" 4. It does not support batchfile syntax.
|
|
"
|
|
" Accepts an optional dictionary with the following keys:
|
|
" - shell: same as Vim/Neovim 'shell' option.
|
|
" If unset, fallback to 'cmd.exe' on Windows or 'sh'.
|
|
" - script: If truthy and shell is cmd.exe, escape for batchfile syntax.
|
|
function! plug#shellescape(arg, ...)
|
|
if a:arg =~# '^[A-Za-z0-9_/:.-]\+$'
|
|
return a:arg
|
|
endif
|
|
let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {}
|
|
let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh')
|
|
let script = get(opts, 'script', 1)
|
|
if shell =~# 'cmd\(\.exe\)\?$'
|
|
return s:shellesc_cmd(a:arg, script)
|
|
elseif s:is_powershell(shell)
|
|
return s:shellesc_ps1(a:arg)
|
|
endif
|
|
return s:shellesc_sh(a:arg)
|
|
endfunction
|
|
|
|
function! s:glob_dir(path)
|
|
return map(filter(s:glob(a:path, '**'), 'isdirectory(v:val)'), 's:dirpath(v:val)')
|
|
endfunction
|
|
|
|
function! s:progress_bar(line, bar, total)
|
|
call setline(a:line, '[' . s:lpad(a:bar, a:total) . ']')
|
|
endfunction
|
|
|
|
function! s:compare_git_uri(a, b)
|
|
" See `git help clone'
|
|
" https:// [user@] github.com[:port] / junegunn/vim-plug [.git]
|
|
" [git@] github.com[:port] : junegunn/vim-plug [.git]
|
|
" file:// / junegunn/vim-plug [/]
|
|
" / junegunn/vim-plug [/]
|
|
let pat = '^\%(\w\+://\)\='.'\%([^@/]*@\)\='.'\([^:/]*\%(:[0-9]*\)\=\)'.'[:/]'.'\(.\{-}\)'.'\%(\.git\)\=/\?$'
|
|
let ma = matchlist(a:a, pat)
|
|
let mb = matchlist(a:b, pat)
|
|
return ma[1:2] ==# mb[1:2]
|
|
endfunction
|
|
|
|
function! s:format_message(bullet, name, message)
|
|
if a:bullet != 'x'
|
|
return [printf('%s %s: %s', a:bullet, a:name, s:lastline(a:message))]
|
|
else
|
|
let lines = map(s:lines(a:message), '" ".v:val')
|
|
return extend([printf('x %s:', a:name)], lines)
|
|
endif
|
|
endfunction
|
|
|
|
function! s:with_cd(cmd, dir, ...)
|
|
let script = a:0 > 0 ? a:1 : 1
|
|
return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd)
|
|
endfunction
|
|
|
|
function! s:system(cmd, ...)
|
|
let batchfile = ''
|
|
try
|
|
let [sh, shellcmdflag, shrd] = s:chsh(1)
|
|
if type(a:cmd) == s:TYPE.list
|
|
" Neovim's system() supports list argument to bypass the shell
|
|
" but it cannot set the working directory for the command.
|
|
" Assume that the command does not rely on the shell.
|
|
if has('nvim') && a:0 == 0
|
|
return system(a:cmd)
|
|
endif
|
|
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})'))
|
|
if s:is_powershell(&shell)
|
|
let cmd = '& ' . cmd
|
|
endif
|
|
else
|
|
let cmd = a:cmd
|
|
endif
|
|
if a:0 > 0
|
|
let cmd = s:with_cd(cmd, a:1, type(a:cmd) != s:TYPE.list)
|
|
endif
|
|
if s:is_win && type(a:cmd) != s:TYPE.list
|
|
let [batchfile, cmd] = s:batchfile(cmd)
|
|
endif
|
|
return system(cmd)
|
|
finally
|
|
let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd]
|
|
if s:is_win && filereadable(batchfile)
|
|
call delete(batchfile)
|
|
endif
|
|
endtry
|
|
endfunction
|
|
|
|
function! s:system_chomp(...)
|
|
let ret = call('s:system', a:000)
|
|
return v:shell_error ? '' : substitute(ret, '\n$', '', '')
|
|
endfunction
|
|
|
|
function! s:git_validate(spec, check_branch)
|
|
let err = ''
|
|
if isdirectory(a:spec.dir)
|
|
let result = [s:git_local_branch(a:spec.dir), s:git_origin_url(a:spec.dir)]
|
|
let remote = result[-1]
|
|
if empty(remote)
|
|
let err = join([remote, 'PlugClean required.'], "\n")
|
|
elseif !s:compare_git_uri(remote, a:spec.uri)
|
|
let err = join(['Invalid URI: '.remote,
|
|
\ 'Expected: '.a:spec.uri,
|
|
\ 'PlugClean required.'], "\n")
|
|
elseif a:check_branch && has_key(a:spec, 'commit')
|
|
let sha = s:git_revision(a:spec.dir)
|
|
if empty(sha)
|
|
let err = join(add(result, 'PlugClean required.'), "\n")
|
|
elseif !s:hash_match(sha, a:spec.commit)
|
|
let err = join([printf('Invalid HEAD (expected: %s, actual: %s)',
|
|
\ a:spec.commit[:6], sha[:6]),
|
|
\ 'PlugUpdate required.'], "\n")
|
|
endif
|
|
elseif a:check_branch
|
|
let current_branch = result[0]
|
|
" Check tag
|
|
let origin_branch = s:git_origin_branch(a:spec)
|
|
if has_key(a:spec, 'tag')
|
|
let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir)
|
|
if a:spec.tag !=# tag && a:spec.tag !~ '\*'
|
|
let err = printf('Invalid tag: %s (expected: %s). Try PlugUpdate.',
|
|
\ (empty(tag) ? 'N/A' : tag), a:spec.tag)
|
|
endif
|
|
" Check branch
|
|
elseif origin_branch !=# current_branch
|
|
let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.',
|
|
\ current_branch, origin_branch)
|
|
endif
|
|
if empty(err)
|
|
let [ahead, behind] = split(s:lastline(s:system([
|
|
\ 'git', 'rev-list', '--count', '--left-right',
|
|
\ printf('HEAD...origin/%s', origin_branch)
|
|
\ ], a:spec.dir)), '\t')
|
|
if !v:shell_error && ahead
|
|
if behind
|
|
" Only mention PlugClean if diverged, otherwise it's likely to be
|
|
" pushable (and probably not that messed up).
|
|
let err = printf(
|
|
\ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n"
|
|
\ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind)
|
|
else
|
|
let err = printf("Ahead of origin/%s by %d commit(s).\n"
|
|
\ .'Cannot update until local changes are pushed.',
|
|
\ origin_branch, ahead)
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
else
|
|
let err = 'Not found'
|
|
endif
|
|
return [err, err =~# 'PlugClean']
|
|
endfunction
|
|
|
|
function! s:rm_rf(dir)
|
|
if isdirectory(a:dir)
|
|
return s:system(s:is_win
|
|
\ ? 'rmdir /S /Q '.plug#shellescape(a:dir)
|
|
\ : ['rm', '-rf', a:dir])
|
|
endif
|
|
endfunction
|
|
|
|
function! s:clean(force)
|
|
call s:prepare()
|
|
call append(0, 'Searching for invalid plugins in '.g:plug_home)
|
|
call append(1, '')
|
|
|
|
" List of valid directories
|
|
let dirs = []
|
|
let errs = {}
|
|
let [cnt, total] = [0, len(g:plugs)]
|
|
for [name, spec] in items(g:plugs)
|
|
if !s:is_managed(name)
|
|
call add(dirs, spec.dir)
|
|
else
|
|
let [err, clean] = s:git_validate(spec, 1)
|
|
if clean
|
|
let errs[spec.dir] = s:lines(err)[0]
|
|
else
|
|
call add(dirs, spec.dir)
|
|
endif
|
|
endif
|
|
let cnt += 1
|
|
call s:progress_bar(2, repeat('=', cnt), total)
|
|
normal! 2G
|
|
redraw
|
|
endfor
|
|
|
|
let allowed = {}
|
|
for dir in dirs
|
|
let allowed[s:dirpath(s:plug_fnamemodify(dir, ':h:h'))] = 1
|
|
let allowed[dir] = 1
|
|
for child in s:glob_dir(dir)
|
|
let allowed[child] = 1
|
|
endfor
|
|
endfor
|
|
|
|
let todo = []
|
|
let found = sort(s:glob_dir(g:plug_home))
|
|
while !empty(found)
|
|
let f = remove(found, 0)
|
|
if !has_key(allowed, f) && isdirectory(f)
|
|
call add(todo, f)
|
|
call append(line('$'), '- ' . f)
|
|
if has_key(errs, f)
|
|
call append(line('$'), ' ' . errs[f])
|
|
endif
|
|
let found = filter(found, 'stridx(v:val, f) != 0')
|
|
end
|
|
endwhile
|
|
|
|
4
|
|
redraw
|
|
if empty(todo)
|
|
call append(line('$'), 'Already clean.')
|
|
else
|
|
let s:clean_count = 0
|
|
call append(3, ['Directories to delete:', ''])
|
|
redraw!
|
|
if a:force || s:ask_no_interrupt('Delete all directories?')
|
|
call s:delete([6, line('$')], 1)
|
|
else
|
|
call setline(4, 'Cancelled.')
|
|
nnoremap <silent> <buffer> d :set opfunc=<sid>delete_op<cr>g@
|
|
nmap <silent> <buffer> dd d_
|
|
xnoremap <silent> <buffer> d :<c-u>call <sid>delete_op(visualmode(), 1)<cr>
|
|
echo 'Delete the lines (d{motion}) to delete the corresponding directories'
|
|
endif
|
|
endif
|
|
4
|
|
setlocal nomodifiable
|
|
endfunction
|
|
|
|
function! s:delete_op(type, ...)
|
|
call s:delete(a:0 ? [line("'<"), line("'>")] : [line("'["), line("']")], 0)
|
|
endfunction
|
|
|
|
function! s:delete(range, force)
|
|
let [l1, l2] = a:range
|
|
let force = a:force
|
|
let err_count = 0
|
|
while l1 <= l2
|
|
let line = getline(l1)
|
|
if line =~ '^- ' && isdirectory(line[2:])
|
|
execute l1
|
|
redraw!
|
|
let answer = force ? 1 : s:ask('Delete '.line[2:].'?', 1)
|
|
let force = force || answer > 1
|
|
if answer
|
|
let err = s:rm_rf(line[2:])
|
|
setlocal modifiable
|
|
if empty(err)
|
|
call setline(l1, '~'.line[1:])
|
|
let s:clean_count += 1
|
|
else
|
|
delete _
|
|
call append(l1 - 1, s:format_message('x', line[1:], err))
|
|
let l2 += len(s:lines(err))
|
|
let err_count += 1
|
|
endif
|
|
let msg = printf('Removed %d directories.', s:clean_count)
|
|
if err_count > 0
|
|
let msg .= printf(' Failed to remove %d directories.', err_count)
|
|
endif
|
|
call setline(4, msg)
|
|
setlocal nomodifiable
|
|
endif
|
|
endif
|
|
let l1 += 1
|
|
endwhile
|
|
endfunction
|
|
|
|
function! s:upgrade()
|
|
echo 'Downloading the latest version of vim-plug'
|
|
redraw
|
|
let tmp = s:plug_tempname()
|
|
let new = tmp . '/plug.vim'
|
|
|
|
try
|
|
let out = s:system(['git', 'clone', '--depth', '1', s:plug_src, tmp])
|
|
if v:shell_error
|
|
return s:err('Error upgrading vim-plug: '. out)
|
|
endif
|
|
|
|
if readfile(s:me) ==# readfile(new)
|
|
echo 'vim-plug is already up-to-date'
|
|
return 0
|
|
else
|
|
call rename(s:me, s:me . '.old')
|
|
call rename(new, s:me)
|
|
unlet g:loaded_plug
|
|
echo 'vim-plug has been upgraded'
|
|
return 1
|
|
endif
|
|
finally
|
|
silent! call s:rm_rf(tmp)
|
|
endtry
|
|
endfunction
|
|
|
|
function! s:upgrade_specs()
|
|
for spec in values(g:plugs)
|
|
let spec.frozen = get(spec, 'frozen', 0)
|
|
endfor
|
|
endfunction
|
|
|
|
function! s:status()
|
|
call s:prepare()
|
|
call append(0, 'Checking plugins')
|
|
call append(1, '')
|
|
|
|
let ecnt = 0
|
|
let unloaded = 0
|
|
let [cnt, total] = [0, len(g:plugs)]
|
|
for [name, spec] in items(g:plugs)
|
|
let is_dir = isdirectory(spec.dir)
|
|
if has_key(spec, 'uri')
|
|
if is_dir
|
|
let [err, _] = s:git_validate(spec, 1)
|
|
let [valid, msg] = [empty(err), empty(err) ? 'OK' : err]
|
|
else
|
|
let [valid, msg] = [0, 'Not found. Try PlugInstall.']
|
|
endif
|
|
else
|
|
if is_dir
|
|
let [valid, msg] = [1, 'OK']
|
|
else
|
|
let [valid, msg] = [0, 'Not found.']
|
|
endif
|
|
endif
|
|
let cnt += 1
|
|
let ecnt += !valid
|
|
" `s:loaded` entry can be missing if PlugUpgraded
|
|
if is_dir && get(s:loaded, name, -1) == 0
|
|
let unloaded = 1
|
|
let msg .= ' (not loaded)'
|
|
endif
|
|
call s:progress_bar(2, repeat('=', cnt), total)
|
|
call append(3, s:format_message(valid ? '-' : 'x', name, msg))
|
|
normal! 2G
|
|
redraw
|
|
endfor
|
|
call setline(1, 'Finished. '.ecnt.' error(s).')
|
|
normal! gg
|
|
setlocal nomodifiable
|
|
if unloaded
|
|
echo "Press 'L' on each line to load plugin, or 'U' to update"
|
|
nnoremap <silent> <buffer> L :call <SID>status_load(line('.'))<cr>
|
|
xnoremap <silent> <buffer> L :call <SID>status_load(line('.'))<cr>
|
|
end
|
|
endfunction
|
|
|
|
function! s:extract_name(str, prefix, suffix)
|
|
return matchstr(a:str, '^'.a:prefix.' \zs[^:]\+\ze:.*'.a:suffix.'$')
|
|
endfunction
|
|
|
|
function! s:status_load(lnum)
|
|
let line = getline(a:lnum)
|
|
let name = s:extract_name(line, '-', '(not loaded)')
|
|
if !empty(name)
|
|
call plug#load(name)
|
|
setlocal modifiable
|
|
call setline(a:lnum, substitute(line, ' (not loaded)$', '', ''))
|
|
setlocal nomodifiable
|
|
endif
|
|
endfunction
|
|
|
|
function! s:status_update() range
|
|
let lines = getline(a:firstline, a:lastline)
|
|
let names = filter(map(lines, 's:extract_name(v:val, "[x-]", "")'), '!empty(v:val)')
|
|
if !empty(names)
|
|
echo
|
|
execute 'PlugUpdate' join(names)
|
|
endif
|
|
endfunction
|
|
|
|
function! s:is_preview_window_open()
|
|
silent! wincmd P
|
|
if &previewwindow
|
|
wincmd p
|
|
return 1
|
|
endif
|
|
endfunction
|
|
|
|
function! s:find_name(lnum)
|
|
for lnum in reverse(range(1, a:lnum))
|
|
let line = getline(lnum)
|
|
if empty(line)
|
|
return ''
|
|
endif
|
|
let name = s:extract_name(line, '-', '')
|
|
if !empty(name)
|
|
return name
|
|
endif
|
|
endfor
|
|
return ''
|
|
endfunction
|
|
|
|
function! s:preview_commit()
|
|
if b:plug_preview < 0
|
|
let b:plug_preview = !s:is_preview_window_open()
|
|
endif
|
|
|
|
let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}')
|
|
if empty(sha)
|
|
let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$')
|
|
if empty(name)
|
|
return
|
|
endif
|
|
let title = 'HEAD@{1}..'
|
|
let command = 'git diff --no-color HEAD@{1}'
|
|
else
|
|
let title = sha
|
|
let command = 'git show --no-color --pretty=medium '.sha
|
|
let name = s:find_name(line('.'))
|
|
endif
|
|
|
|
if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir)
|
|
return
|
|
endif
|
|
|
|
if exists('g:plug_pwindow') && !s:is_preview_window_open()
|
|
execute g:plug_pwindow
|
|
execute 'e' title
|
|
else
|
|
execute 'pedit' title
|
|
wincmd P
|
|
endif
|
|
setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable
|
|
let batchfile = ''
|
|
try
|
|
let [sh, shellcmdflag, shrd] = s:chsh(1)
|
|
let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command
|
|
if s:is_win
|
|
let [batchfile, cmd] = s:batchfile(cmd)
|
|
endif
|
|
execute 'silent %!' cmd
|
|
finally
|
|
let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd]
|
|
if s:is_win && filereadable(batchfile)
|
|
call delete(batchfile)
|
|
endif
|
|
endtry
|
|
setlocal nomodifiable
|
|
nnoremap <silent> <buffer> q :q<cr>
|
|
wincmd p
|
|
endfunction
|
|
|
|
function! s:section(flags)
|
|
call search('\(^[x-] \)\@<=[^:]\+:', a:flags)
|
|
endfunction
|
|
|
|
function! s:format_git_log(line)
|
|
let indent = ' '
|
|
let tokens = split(a:line, nr2char(1))
|
|
if len(tokens) != 5
|
|
return indent.substitute(a:line, '\s*$', '', '')
|
|
endif
|
|
let [graph, sha, refs, subject, date] = tokens
|
|
let tag = matchstr(refs, 'tag: [^,)]\+')
|
|
let tag = empty(tag) ? ' ' : ' ('.tag.') '
|
|
return printf('%s%s%s%s%s (%s)', indent, graph, sha, tag, subject, date)
|
|
endfunction
|
|
|
|
function! s:append_ul(lnum, text)
|
|
call append(a:lnum, ['', a:text, repeat('-', len(a:text))])
|
|
endfunction
|
|
|
|
function! s:diff()
|
|
call s:prepare()
|
|
call append(0, ['Collecting changes ...', ''])
|
|
let cnts = [0, 0]
|
|
let bar = ''
|
|
let total = filter(copy(g:plugs), 's:is_managed(v:key) && isdirectory(v:val.dir)')
|
|
call s:progress_bar(2, bar, len(total))
|
|
for origin in [1, 0]
|
|
let plugs = reverse(sort(items(filter(copy(total), (origin ? '' : '!').'(has_key(v:val, "commit") || has_key(v:val, "tag"))'))))
|
|
if empty(plugs)
|
|
continue
|
|
endif
|
|
call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:')
|
|
for [k, v] in plugs
|
|
let branch = s:git_origin_branch(v)
|
|
if len(branch)
|
|
let range = origin ? '..origin/'.branch : 'HEAD@{1}..'
|
|
let cmd = ['git', 'log', '--graph', '--color=never']
|
|
if s:git_version_requirement(2, 10, 0)
|
|
call add(cmd, '--no-show-signature')
|
|
endif
|
|
call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range])
|
|
if has_key(v, 'rtp')
|
|
call extend(cmd, ['--', v.rtp])
|
|
endif
|
|
let diff = s:system_chomp(cmd, v.dir)
|
|
if !empty(diff)
|
|
let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : ''
|
|
call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)')))
|
|
let cnts[origin] += 1
|
|
endif
|
|
endif
|
|
let bar .= '='
|
|
call s:progress_bar(2, bar, len(total))
|
|
normal! 2G
|
|
redraw
|
|
endfor
|
|
if !cnts[origin]
|
|
call append(5, ['', 'N/A'])
|
|
endif
|
|
endfor
|
|
call setline(1, printf('%d plugin(s) updated.', cnts[0])
|
|
\ . (cnts[1] ? printf(' %d plugin(s) have pending updates.', cnts[1]) : ''))
|
|
|
|
if cnts[0] || cnts[1]
|
|
nnoremap <silent> <buffer> <plug>(plug-preview) :silent! call <SID>preview_commit()<cr>
|
|
if empty(maparg("\<cr>", 'n'))
|
|
nmap <buffer> <cr> <plug>(plug-preview)
|
|
endif
|
|
if empty(maparg('o', 'n'))
|
|
nmap <buffer> o <plug>(plug-preview)
|
|
endif
|
|
endif
|
|
if cnts[0]
|
|
nnoremap <silent> <buffer> X :call <SID>revert()<cr>
|
|
echo "Press 'X' on each block to revert the update"
|
|
endif
|
|
normal! gg
|
|
setlocal nomodifiable
|
|
endfunction
|
|
|
|
function! s:revert()
|
|
if search('^Pending updates', 'bnW')
|
|
return
|
|
endif
|
|
|
|
let name = s:find_name(line('.'))
|
|
if empty(name) || !has_key(g:plugs, name) ||
|
|
\ input(printf('Revert the update of %s? (y/N) ', name)) !~? '^y'
|
|
return
|
|
endif
|
|
|
|
call s:system('git reset --hard HEAD@{1} && git checkout '.plug#shellescape(g:plugs[name].branch).' --', g:plugs[name].dir)
|
|
setlocal modifiable
|
|
normal! "_dap
|
|
setlocal nomodifiable
|
|
echo 'Reverted'
|
|
endfunction
|
|
|
|
function! s:snapshot(force, ...) abort
|
|
call s:prepare()
|
|
setf vim
|
|
call append(0, ['" Generated by vim-plug',
|
|
\ '" '.strftime("%c"),
|
|
\ '" :source this file in vim to restore the snapshot',
|
|
\ '" or execute: vim -S snapshot.vim',
|
|
\ '', '', 'PlugUpdate!'])
|
|
1
|
|
let anchor = line('$') - 3
|
|
let names = sort(keys(filter(copy(g:plugs),
|
|
\'has_key(v:val, "uri") && isdirectory(v:val.dir)')))
|
|
for name in reverse(names)
|
|
let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir)
|
|
if !empty(sha)
|
|
call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha))
|
|
redraw
|
|
endif
|
|
endfor
|
|
|
|
if a:0 > 0
|
|
let fn = s:plug_expand(a:1)
|
|
if filereadable(fn) && !(a:force || s:ask(a:1.' already exists. Overwrite?'))
|
|
return
|
|
endif
|
|
call writefile(getline(1, '$'), fn)
|
|
echo 'Saved as '.a:1
|
|
silent execute 'e' s:esc(fn)
|
|
setf vim
|
|
endif
|
|
endfunction
|
|
|
|
function! s:split_rtp()
|
|
return split(&rtp, '\\\@<!,')
|
|
endfunction
|
|
|
|
let s:first_rtp = s:escrtp(get(s:split_rtp(), 0, ''))
|
|
let s:last_rtp = s:escrtp(get(s:split_rtp(), -1, ''))
|
|
|
|
if exists('g:plugs')
|
|
let g:plugs_order = get(g:, 'plugs_order', keys(g:plugs))
|
|
call s:upgrade_specs()
|
|
call s:define_commands()
|
|
endif
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|